2012-11-29 6 views
8

mio MongoDB collezione si presenta così:Impossibile stampare oggetto BSON da java script

{ 
    "_id" : ObjectId("5070310e0f3350482b00011d"), 
    "emails" : [ 
      { 
        "_id" : ObjectId("5070310e0f3350482b000120"), 
        "_type" : "Email", 
        "name" : "work", 
        "email" : "[email protected]", 
        "current" : true 
      } 
    ] 
} 

e questo è il codice .js che uso per stampare il contenuto:

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

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

quando provo a correre questo file javascript, sta solo visualizzando l'id ma non l'array di e-mail.

output: 
5070310e0f3350482b00011d [object bson_object] 

ma quando provo c.emails[0].email si sta dando risultato corretto. Ad esempio [email protected]

Tutto ciò di cui ho bisogno è che voglio visualizzare l'intero oggetto incorporato e-mail.

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

Dove sto andando male ?. Qualsiasi aiuto sarebbe apprezzato.

risposta

22

È necessario printjson per produrre un JSON ben formattata:

printjson(c.emails[0]); 

Eccolo the documentation.

+0

Quella funzionava come un incantesimo. Complimenti (y) – user1518659