18

My mongoDB collection looks like this :

{
    "_id" : ObjectId("5070310e0f3350482b00011d"),
    "emails" : [
            {
                    "_id" : ObjectId("5070310e0f3350482b000120"),
                    "_type" : "Email",
                    "name" : "work",
                    "email" : "peter.loescher@siemens.com",
                    "current" : true
            }
    ]
}

and this is the .js code i use to print the contents :

c = db.contacts.findOne( { "emails.email" : { $ne : null } }, { "emails" : 1 } )

print(c._id.toString() + " " + c.emails[0]);

when I try to run this javascript file, it is just displaying the id but not the email array.

output:
5070310e0f3350482b00011d [object bson_object]

but when I try c.emails[0].email is is giving proper result. i.e. peter.loescher@siemens.com

All I need is I want to display the whole emails embedded object.

i.e.
"emails" : [
        {
                "_id" : ObjectId("5070310e0f3350482b000120"),
                "_type" : "Email",
                "name" : "work",
                "email" : "peter.loescher@siemens.com",
                "current" : true
        }
]

Where I am going wrong?. Any help would be appreciated.

Stéphane
  • 1,476
  • 3
  • 12
  • 12
user1518659
  • 2,198
  • 9
  • 29
  • 40

1 Answers1

45

You need printjson to output a nicely formatted JSON:

printjson(c.emails[0]);

Here it is the documentation.

Alexander Azarov
  • 12,971
  • 2
  • 50
  • 54