- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
使用以下数据,我将如何使用 MongoDB 对聚合查询的支持来计算 pollId 为“hr4946-113”的记录集合的赞成票和反对票的总数。
{ "_id" : ObjectId("54abcdbeba070410146d6073"), "userId" : "1234", "pollId" : "hr4946-113", "vote" : true, "__v" : 0 }
{ "_id" : ObjectId("54afe32fec4444481b985711"), "userId" : "12345", "pollId" : "hr2840-113", "vote" : true, "__v" : 0 }
{ "_id" : ObjectId("54b66de68dde7a0c19be987b"), "userId" : "123456", "pollId" : "hr4946-113", "vote" : false }
这将是预期的结果。
{
"yesCount": 1,
"noCount":1
}
最佳答案
aggregation framework是你的答案:
db.collection.aggregate([
{ "$match": { "pollId": "hr4946-113" } },
{ "$group": {
"_id": "$vote",
"count": { "$sum": 1 }
}}
])
基本上是$group
运算符通过“键”和“分组运算符”收集所有数据,如 $sum
工作的值(value)观。在这种情况下,只需在边界上添加 1
即可表示计数。
给你:
{ "_id": true, "count": 1 },
您可能会很傻,并使用 $cond 将其扩展为单个文档响应有条件地评估字段值的运算符:
db.collection.aggregate([
{ "$match": { "pollId": "hr4946-113" } },
{ "$group": {
"_id": "$vote",
"count": { "$sum": 1 }
}},
{ "$group": {
"_id": null,
"yesCount": {
"$sum": {
"$cond": [ "_id", 1, 0 ]
}
},
"noCount": {
"$sum": {
"$cond": [ "_id", 0, 1 ]
}
}
}},
{ "$project": { "_id": 0 } }
])
结果:
{ "yesCount": 1, "noCount": 0 }
关于MongoDB 计算与查询匹配的文档的真值和假值总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27945060/
我想获取百分比值大于 90% 的所有项,但该部分的顺序无关紧要。这是一个例子: Person Score Location 1 91 US 2
在大多数语言中,包括 Python,变量的真实值可以在条件表达式中隐式使用,即: is_selected = True If is_selected: #do some
是否可以将 hibernate 设置为将 -1 而不是 1 作为数据库中 boolean 字段的真值?我需要 -1 来保持与其他 Delphi 程序的兼容性。 最佳答案 @Type(type="com
使用文档运行 rasa_core 示例 › python3 -m rasa_core.run -d models/dialogue -u models/nlu/default/current 并在对话
如果我的对象包含一个具有真值的键,我真的很困惑如何返回一个简单的真/假。我不想返回键或值本身,只是断言它确实包含一个真值。 例如 var fruits = { apples: false, orang
我正在尝试编写一个 JUnit 测试,它检查接收到的 JSON 的值。我使用 jsonPath 访问 JSON 中的这些值。我想检查一个值是否为true。对于简单的 jsonPaths,它对我有用,但
我正在尝试检查 Angular HTML 中的 bool 值真实性,但得到了一个奇怪的结果。看完this SO post我以为我明白发生了什么。我希望能够使用 === 运算符,但正如我下面的最后一个示
在 REST Web 服务中,POST JSON 正文如下所示: { "printRequest" : { "printName" : "XYZ", "enab
我是一名优秀的程序员,十分优秀!