18

私のmongoDBコレクションは次のようになります:

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

そして、これは.js私が内容を印刷するために使用するコードです:

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

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

この JavaScript ファイルを実行しようとすると、ID が表示されるだけで、メール配列は表示されません。

output:
5070310e0f3350482b00011d [object bson_object]

しかし、私が試してみるc.emails[0].emailと、適切な結果が得られます。すなわちpeter.loescher@siemens.com

必要なのは、電子メールの埋め込みオブジェクト全体を表示することだけです。

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

どこが間違っているのでしょうか。どんな助けでも大歓迎です。

4

1 に答える 1

40

printjson適切にフォーマットされた JSON を出力する必要があります。

printjson(c.emails[0]);

ここにドキュメントがあります。

于 2012-11-29T09:40:13.320 に答える