0

次のプロトタイプのドキュメントがあるとします。

{
  cust_id: "abc123",
  ord_date: ISODate("2012-11-02T17:04:11.102Z"),
  status: 'A',
  price: 50,
  items: [
       { sku: "xxx", qty: 25, price: 1 },
       { sku: "yyy", qty: 25, price: 1 } 
  ]
}

私の要件は、50 * 25 (価格×数量) である SKU "XXX" の合計価格を取得することです。MONGODB でこのクエリの結果を得るにはどうすればよいですか?

4

2 に答える 2

0
db.YOUR_COLLECTION.aggregate({ 
    $match: {
        items.sku: "xxx"
    },
    $project: {
        "product": {$multiply: ["$items.qty","$items.price"]},
        _id: 0
    }
});
于 2013-09-30T11:00:07.293 に答える
0

以下のように、クエリを 2 つのブロックに分割することで、これに対する解決策を実現で​​きます。

var パイプライン 1 = [

{

{

"$unwind": "$items"

}、

$match: {
    items.sku: "xxx"
},
$project: {
    "product":

{

$multiply: ["$items.qty","$items.price"]

}、_id: 0 } }];

R = db.tb.aggregate(パイプライン);

于 2013-10-06T05:39:18.150 に答える