こんなドキュメントがあったとする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "_id" : ObjectId(), "name" : "にしふなばし", "address" : { "pref": "千葉県", "city": "船橋市", "after": "ほげほげ" } }, { "_id" : ObjectId(), "name" : "ひがしふなばし", "address" : { "pref": "千葉県", "city": "船橋市", "after": "ふがふが" } } |
ここからaddress内のafter要素だけを取得する。ドットで要素名をつなぐだけで気軽に取れる。コレクション名(hogehoge)は適当に読み替えてください。
1 |
db.hogehoge.find({}, {"address.after": 1, _id: 0}) |
・・・この文章を書いてから、何の気なしにWikipediaのMongoDBのページを見たら、似たような感じの記事があることに気づいて驚きΣ(・ω・`) ドキュメントの構造まで同じっていうね……
Wikipedia – MongoDB ネストされたフィールドのクエリ
まぁ気にせずうp。