mongodb - MongoDB:对数组中对象中值==“某些字符串”的次数求和
问题描述
我有一个 MongoDB 文档,看起来像这样:
{
"_id": 000000000001,
"sample": [
{
"_id": {
"$oid": "12345678910"
},
"Phone": 5555555555,
"LastName": "Musk",
"FirstName": "Elon",
"responses": {
"question1": "hello",
"question2": "world"
}
},
{
"_id": {
"$oid": "12345678911"
},
"Phone": "1111111111",
"LastName": "Jobs",
"FirstName": "Steve",
"responses": {
"question1": "goodbye",
"question2": "world"
}
}
]
}
我想得到$sum
所有对 做出回应hello
的question1
人和所有对 做出回应的world
人question2
。
例如。我想要一个看起来像这样的响应:
{ 'question1': 1, 'question2': 2 }
我的查询看起来像这样,但它不起作用。0
只有当我知道情况并非如此时,它才会返回任何给定的金额。
db.collection(collection).aggregate([
{ $match : { } },
{ $group: {
_id: "responses",
"question1": { $sum: { $cond: [ { $eq: [ "$sample.responses.question1", "hello"] }, 1, 0 ] } },
"question2": { $sum: { $cond: [ { $eq: [ "$sample.responses.question2", "world"] }, 1, 0 ] } }
}
}
])
谁能帮我吗?
解决方案
推荐阅读
- javascript - QRCodeJs 和反应
- r - R markdown不会在pdf中编织作者姓名
- reinforcement-learning - 强化学习ddpg过拟合问题
- r - 具有良好性能的 charToRaw 的矢量化版本
- date - 如何从 Github 存储库中获取文件在特定日期的修订版?
- java - NavigationDrawer 内的 RecyclerView 不滚动
- ruby-on-rails - 如何在 rake 任务上运行 sorbet typecheck
- python - Python Flask request.data 仅返回字符串
- c - C 是否保证 32 位整数运算?
- r - 从字符串中删除第一个字母字符