次の MongoDB の「レシピ」コレクションを検討してください。
{
"title" : "Macaroni and Cheese",
"ingredients" : [
{ "name" : "noodles", "qty" : "2 c" },
{ "name" : "butter", "qty" : "2 tbl" },
{ "name" : "cheese", "qty" : "1 c" },
]
},
{
"title" : "Pound Cake",
"ingredients" : [
{ "name" : "sugar", "qty" : "1 lb" },
{ "name" : "butter", "qty" : "1 lb" },
{ "name" : "flour", "qty" : "1 lb" },
]
},
{
"title" : "Dough",
"ingredients" : [
{ "name" : "water", "qty" : "2 c" },
{ "name" : "butter", "qty" : "8 tbl" },
{ "name" : "flour", "qty" : "1 lb" },
]
}
すべてのレシピを作成するために購入するアイテムの「買い物リスト」を生成するクエリを作成したいと考えています。だから私は基本的に「麺」、「バター」、「チーズ」、「砂糖」、「バター」、「小麦粉」、「水」の材料を返したいと思っています。重複はしたくありません。(たとえば、砂糖とバターは複数のレシピに表示されますが、それらを 1 回だけ返したい、つまり重複しないようにします。)
MongoDB でそのようなクエリを作成することは可能ですか?もしそうなら、このクエリは何でしょうか? それとも、「食材」用に別のコレクションを作成する必要がありますか?