1
mongodbの3つのテーブルで集計クエリを使用したい場合 DBデータを格納する3つのテーブルをリストしました。使用したクエリは ですが、出力が得られません。mongodbから詳細を取得するには、配列と配列の配列の集約単一クエリを使用する方法
注文表Iは、1注文を作成し、そのオブジェクトの "注文の詳細"
"order_details":[
{
"product_unique_id" : 10
"items":[
{
"item_unique_id" : 1
"quantity":2,
},
{
"item_unique_id" : 2
"quantity":4,
}
]
},
{
"product_unique_id" : 11
"items":[
{
"item_unique_id" : 1
"quantity":1,
},
{
"item_unique_id" : 3
"quantity":3,
},
{
"item_unique_id" : 4
"quantity":2,
}
]
}
]
製品表
Data 1 => {"unique_id":10, "product_name":"Product10", "product_visible":true}
Data 2 => {"unique_id":11, "product_name":"Product11", "product_visible":false}
Data 3 => {"unique_id":12, "product_name":"Product13", "product_visible":true}
... up to N
項目表持って注文テーブルに
Data 1 => {"unique_id":1, "item_name":"Item1", "price":17}
Data 2 => {"unique_id":2, "item_name":"Item2", "price":9}
Data 3 => {"unique_id":3, "item_name":"Item3", "price":34}
Data 4 => {"unique_id":4, "item_name":"Item4", "price":78}
Data 5 => {"unique_id":5, "item_name":"Item5", "price":26}
私が欲しい
以下OUTPUTは、私がそのためのいくつかのクエリを使用されるが、OUTはPUT
"order_details":[
{
"product_unique_id" : 10,
"product_detail": {"unique_id":10, "product_name":"Product10", "product_visible":true},
"items":[
{
"item_unique_id" : 1
"quantity":2,
"item_details":{"unique_id":1, "item_name":"Item1", "price":17}
},
{
"item_unique_id" : 2
"quantity":4,
"item_details":{"unique_id":2, "item_name":"Item2", "price":9}
}
]
},
{
"product_unique_id" : 11,
"product_detail": {"unique_id":11, "product_name":"Product11", "product_visible":false},
"items":[
{
"item_unique_id" : 1
"quantity":1,
"item_details":{"unique_id":1, "item_name":"Item1", "price":17}
},
{
"item_unique_id" : 3
"quantity":3,
"item_details":{"unique_id":3, "item_name":"Item3", "price":34}
},
{
"item_unique_id" : 4
"quantity":2,
"item_details":{"unique_id":4, "item_name":"Item4", "price":78}
}
]
}
]
ISように私は順序テーブルに集計クエリを実行し、応答を行いたい場合複数の項目を使用する場合
var product_query = {
$lookup:
{
from: "products",
localField: "order_details.product_unique_id",
foreignField: "unique_id",
as: "order_details.product_detail"
}
};
var group_product = {
$group: {
_id: '$order_details'
}
}
var item_query = {
$lookup:
{
from: "items",
localField: "order_details.items.item_unique_id",
foreignField: "unique_id",
as: "order_details.item_details"
}
};
Order.aggregate([
{$unwind: "$order_details"},
{$unwind: "$order_details.items"},
product_query,
item_query,
group_product
], function (error, order) {
// OUT PUT HERE
});
ありがとうございました。 私の仕事です。驚くばかり。 パイプラインクエリを共有できますか? –
ようこそ。 3.4バージョンのパイプラインクエリですか? – Veeram