Node.js MongoDb聚合总和与特定字段总和
这是我的collections[testing]。
{"_id" : "Test1", "enabled": "on", "value" : 10}, {"_id" : "Test2", "enabled": "on", "value" : 50}, {"_id" : "Test3", "enabled": "on", "value" : 10}, {"_id" : "Test4", "value" : 5}, {"_id" : "Test5", "value" : 2}
我想获得全部的价值和总价值的领域与"enabled":"on"
像这样:
预期结果:
[{_id:null,totalValue:77,totalEnabled:70}]
这是我迄今为止,但没有运气。
db.collection('test').aggregate({ $group: { _id: null, totalValue : { $sum: "$value" }, totalEnabled: $sum : {"enabled":{$exists:true}} } }, function(err, result) { if (err) return console.dir(err) console.log(result); });
你近了,但$存在不起作用是聚合和具有不同的function。 你要找的是$ cond
db.items.aggregate([ {$group: { _id: null, totalValue: {$sum: "$value"}, enabledValue: {$sum: { $cond: [ // Condition to test {$eq: ["$enabled", "on"] }, // True "$value", // False 0 ] }} }} ])
用法是根据条件评估为true
还是false
来提供不同的值。
- Elasticsearch分页与MongoDB和ExpressJS
- Node.js / Socket.io web应用程序完美无缺地在本地运行,但在Heroku上时,浏览器挂起
- Dreamhost vps nodejs和mongodb不会启动
- Nodejs Mongoose错误:getaddrinfo ENOTFOUND undefined undefined:27017
- 根据req参数dynamic添加字段到mongoose聚合
- 如何计算mongoDB中唯一数据的数量
- 为什么我不能在mongoose/蒙戈德增量?
- 如何在EC2环境中使用node-mongodb-native在Node.js服务器上设置MongoDB?
- Nodejs用户login系统