【发布时间】:2014-02-11 18:28:17
【问题描述】:
如果我有一个文档或多或少看起来像这样的集合:
{
"_id": "52c06c86b78a091f26000001",
"desc": "Something somethingson",
"likes": [
{
"user_id": "52add4f4344e8ca867000001",
"username": "asd",
"created": 1390652212592
},
{
"user_id": "52add4f4344e8ca867000001",
"username": "asd",
"created": 1390652212592
}
],
"user_id": "52add4f4344e8ca867000001",
"username":"username"
}
我可以使用 mongodb(使用 nodejs 和 express)获取 10 个用户最喜欢帖子的列表吗?
我认为应该可以通过按“user_id”对所有帖子进行分组,然后计算“likes”数组中的项目总数来执行此 Map-Reduce 或使用 Aggregate。然后从中获取前 10 个“user_id”。
我猜这是可能的。唯一的问题是我从 mongo 网站上获得的示例不足以组合我自己的东西。
谁能给我一个这样做的例子,或者至少告诉我这是不可能的。 =)
【问题讨论】:
-
你需要看一下聚合框架。他们有一个非常直接的示例适用于您的用例。 docs.mongodb.org/manual/tutorial/…