目的
我有一個配方文件,其中包含成分(也是文件)的數組。我希望獲得包含某種成分的所有食譜。如何獲取包含數組中另一個文檔的所有文檔?
背景
可以說我有一個配方文件,如下所示:
{
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"
}
現在,可以說我有很多的食譜集合,我希望有「蘿蔔各食譜「作爲一種成分。
我試過
爲了實現這個我想下面的使用MongoDB的控制檯:
db.smoothies.find({ ingredients: {name: "orange"}})
但是,這是行不通的。
我像Find document with array that contains a specific value其他問題看,有些人使用的關鍵字,例如$all
,$in
和$exists
,但我不確定如何將這些能幫助我。
問題
如何讓我的查詢工作?
使用[點號](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/# ({「ingredients」:{「$ elemMatch」:{「name」:「orange」}}})' – chridam