I've defined some simple cursor as find() on some collection.
cursor = db.students.find()
Student has following schema:
"_id" : 19,
"name" : "Gisela Levin",
"scores" : [
{
"type" : "exam",
"score" : 44.51211101958831
},
{
"type" : "quiz",
"score" : 0.6578497966368002
},
{
"type" : "homework",
"score" : 93.36341655949683
},
{
"type" : "homework",
"score" : 49.43132782777443
}
]
I want to iterate cursor and print a document. I try like that:
cursor.forEach(function(o){print(o)})
It prints only this:
[object Object]
If I modify a loop to select some simple property it works:
cursor.forEach(function(o){print(o._id)})
Though if I change it to print scores it prints this:
[object Object],[object Object],[object Object],[object Object]
Is there any function to print a json document in mongodb shell?
I am not sure why the pretty
can't be applied to your case.
If you are consuming the cursor manually, you need to use the printjson
function
db.collection.find().forEach(printjson)
or the following with filter expression
db.collection.find({}, { "scores": 1, "_id": 0 }).forEach(printjson)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With