MongoDB/MongoEngine:在1查询中获取2个计数

问题描述:

我试图最小化应用程序中的数据库调用次数。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() 

我不知道什么是mongoengine,但我认为你将能够将我的mongo shell的答案翻译成适合你的东西。是的,你可以通过聚合来实现它。例如:

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

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