2014-10-10 57 views
0

我試圖最小化應用程序中的數據庫調用次數。MongoDB/MongoEngine:在1查詢中獲取2個計數

是否可以在一次調用中完成這兩個查詢?

system_0 = System.objects(platform_id=platform_id, type=0).count() 
system_1 = System.objects(platform_id=platform_id, type=1).count() 

回答

0

我不知道什麼是mongoengine,但我認爲你將能夠將我的mongo shell的答案翻譯成適合你的東西。是的,你可以通過聚合來實現它。例如:

db.collection.aggregate([{ 
    $match : { platform_id : ... } 
}, { 
    $group: { 
     _id: "$type", 
     count: { $sum: 1 } 
    } 
}]); 

如果您有更多的類型比0,1,你可以在$match排除它們。