How can I print document in cursor.ForEach?
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)
Arkadiusz Kałkus
I’m a full-stack developer specialized in the design, and implementation of corporate web applications. I put emphasis on S.O.L.I.D. craftsmanship and strive to keep my code clean. Because I know how expensive technical debt can be. Because I understand my job is not to write code but to solve problems. Because I want to help people to be more effective through the software.
Updated on July 25, 2022Comments
-
Arkadiusz Kałkus almost 2 years
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?