如果我有一個文件,尋找更多或更少的這樣一個集合:的MongoDB讓用戶用最喜歡的職位
{
"_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 &快遞)得到10個用戶的列表,最喜歡的帖子?
我想應該可以做到這一點Map-Reduce或與聚合,通過「user_id」分組所有職位,然後計算「喜歡」數組中的項目總數。然後從中獲得前10名「user_id」。
我猜這是可能的。唯一的問題是,我沒有從mongo網站上得到足夠的例子來把我自己的東西放在一起。
任何人都可以告訴我一個這樣做的例子,或者至少告訴我它是不可能的。 =)
你需要看看聚合框架。他們有一個適用於您的用例的非常直接的例子。 http://docs.mongodb.org/manual/tutorial/aggregation-with-user-preference-data/#return-the-five-most-common-likes –