私はfoos
に埋め込まれbars
を持っているので、今、私はfoo
からある特定のbar
を取得したい:FindOne埋め込まれた文書
foo = db.foos.findOne()
bar = foo.bars.findOne({property: 'Hello World'})
それでは、どのように私はこれを達することができますか?
私はfoos
に埋め込まれbars
を持っているので、今、私はfoo
からある特定のbar
を取得したい:FindOne埋め込まれた文書
foo = db.foos.findOne()
bar = foo.bars.findOne({property: 'Hello World'})
それでは、どのように私はこれを達することができますか?
私はあなたがこのようなものがあるとします。
foo
{
_id: 1,
bars :[
{name: "1"},
{name: "2"}
]
}
ので、MongoDBのクエリは、常に唯一のルートドキュメントを返すクエリの上
db.foos.find({"bars.name": 1})
は「同じ名前のバーが含まれているすべてのFOOSを返します1 "クライアント側で必要なバーを取得できます。問い合わせの上
db.foos.find({"bars.name": 1}, {bars:{$slice: 1}, _id: 1})
が同じ名前「1」とバーが含まれているすべてのFOOSを返しますが、それ:
あなたが埋め込まれた配列から一つだけのアイテムが必要な場合にも、あなたは、データの最小値をロードするためにslice and include only root documenトンを使用することができますまた、ネストされたバーを1つだけ一致させ、親ドキュメントのIDだけを返すので、クライアント側では、ネストされたバーの配列から最初のアイテムをロードする必要があります。
埋め込みドキュメントの使用に関する基本的なドキュメントは読んでいませんでした。あなたは? –
私はしました、私はしませんでしたか? – fl00r
いいえ、あなたはしませんでした。 http://www.mongodb.org/display/DOCS/Dot+Notation –