目的
私は原料の配列(文書も含む)を含むレシピ文書を持っています。私はある成分を含むすべてのレシピを手に入れたいと思う。アレイ内に別のドキュメントを含むすべてのドキュメントを取得するにはどうすればよいですか?
背景
は、私は次のようなレシピ文書を考えてみましょう:
{
name: "Red Velvet Cake",
ingredients: [{
name: "roasted beet",
amount: {
quantity: 0.5,
metric: metrics[0]
}
}, {
name: "orange",
amount: {
quantity: 0.25,
metric: metrics[0]
}
}],
preparation: "Mix everything and have fun!",
Source: "Super Smoothies, p. 142"
}
さて、私は多くのレシピでコレクションを持っている、と私は「みかんを持っているすべてのレシピをしたいと言うことができます"成分として。
db.smoothies.find({ ingredients: {name: "orange"}})
しかし、それは動作しません:私はMongoDBの者コンソールを使用して次のことをしようとしていますこれを実現するために
を試してみました何
。
私は何人かの人々が$all
、$in
と$exists
のようなキーワードを使用しますが、私はこれらが私を助けることができるかわからないよFind document with array that contains a specific valueのような他の質問でお読みください。
質問
クエリを動作させるにはどうすればよいですか?
は '配列の要素を照会するために、[ドット表記](https://docs.mongodb.com/manual/core/document/#dot-notation)を使用しますdb.smoothies.find({"ingredients.name": "orange"}) 'または[' $ elemMatch'](https://docs.mongodb.com/v3.2/reference/operator/query/elemMatch/# – chridam