【发布时间】:2017-10-10 09:36:45
【问题描述】:
假设我们有 10 个集合,那么我们必须根据tag_id 找到计数。例如,如果tag_id 包含 0 和 1,那么我们必须计算所有数据,以及计算没有 tag_id 或 tag_id 为空的数据。然后如果它有 unread : false 那么输出来,所有未读的计数。
查找 tag_id 的计数和未读计数(如果为 false)。
{
"_id": ObjectId("5912c7240520df77f0c2c18a"),
"email_id": "54",
"unread": "false",
"__v": NumberLong(0),
"tag_id": ["0"
]
}, {
"_id": ObjectId("5912c71e0520df77f0c2c189"),
"email_id": "55",
"unread": "false",
"__v": NumberLong(0),
"tag_id": [
"1"
]
}, {
"_id": ObjectId("5912c71d0520df77f0c2c186"),
"email_id": "51",
"unread": "false",
"__v": NumberLong(0),
"tag_id": [
"2", "1"
]
}
预期结果:
{
"data": [{
"tag_id": "1",
"count_email": 1,(count of email on the basis of tag_id)
"unread": 9(count the unread on the basis of output of tag_id)
}, {
"tag_id": "3",
"count_email": 45,
"unread": 3
}, {
"tag_id": "2",
"count_email": 5,
"unread": 4
}, {
"id": null,
"count_email": 52,
"unread": 35
}]
}
【问题讨论】:
-
这不清楚,预期的输出与您提供的示例文档不对应。您能否更新预期输出并添加一些有关您尝试实现的目标的详细信息?
-
Mongo 提供聚合、map reduce 等功能……但这些操作在实践中无法在事务系统中扩展。如果是用于分析,那么有比 mongo 更适合的数据存储。
-
谢谢。好的 。会处理的
标签: javascript angularjs node.js mongodb mongoose