2014-07-20 52 views
0

我有一個項目列表,我想mongoDB返回他們的價格總和的結果。mongoDB,總結許多值查詢

Schema = { 
    _id: ObjectId, 
    price: Integer, 
} 

我想使用聚合框架,但我不知道如何正確使用它。

這裏的示例

db.items.aggregate([ 
    {$match: {_id: {$in: [103070,103069]}}}, 
    {$unwind: "$items"}, 
    {$group: {_id: "$items", count: {$sum: "$items.price"}}}, 
    {$project: {_id: 1}} 
]) 
+2

您的問題中的架構不能真正匹配您的代碼。 – JohnnyHK

+1

您可以從您的收藏中發佈樣本文件,它可以更好地幫助我們解決您的問題。謝謝 –

回答

-1
你沒有正確使用 $in操作者

$in ...用於查找一個數組中的元素,在這種情況下,應使用$gte(大於等於),$lte(少於等於)...您的模式根本沒有"nodeId" ... $unwind用於文檔內有數組時我認爲不是這種情況...如果我理解查詢應該是這樣的:

db.items.aggregate([ 
    {$match : {_id : { $gte : 103069, $lte : 103070 } } }, 
    {$group: {_id: null, count: {$sum: "$price"}}}, 
    {$project: {_id: 0, count : 1}} 
])