我正嘗試使用mongo創建簡單的排行榜。 我使用node.js和express來構建API。MongoDB如何找到最近的鄰居
現在我已經JSON由用戶點,看起來像這樣排序:
[
{
"_id": "58e543758222ff220d0af481",
"id": 5,
"__v": 0,
"name": "Frank",
"points": 653
},
{
"_id": "58e543758222ff220d0af479",
"id": 1,
"__v": 0,
"name": "Bob",
"points": 321
},
{
"_id": "58e543758222ff220d0af47b",
"id": 2,
"__v": 0,
"name": "John",
"points": 123
},
{
"_id": "58e543758222ff220d0af47d",
"id": 3,
"__v": 0,
"name": "Bravo",
"points": 34
},
{
"_id": "58e543758222ff220d0af47f",
"id": 4,
"__v": 0,
"name": "Bill",
"points": 12
}
]
我有get請求,看起來像這樣:
User.find().sort({ points: '-1' }).exec(function(err, users) {
if (err)
res.send(err);
res.json(users);
});
而另一個get請求找到指定的ID。
User.findOne({id: req.params.id}, function(err, user) {
if (err)
res.send(err);
res.json(user);
});
我只是發送用戶的id並獲得關於他的信息。 我不知道如何找到指定ID的最近鄰居。例如,我找到id爲3的用戶,但是如何向他顯示一個用戶,以及如何在他之後使用點。
謝謝
你昨天救了我,你又在做。謝謝:) 你能告訴我這個解決方案是否適用於10000個元素?我會每2小時發一次這樣的請求。 – omygoodness
現在,我不知道。我使用MongoDB的次數越多,我越發現它有多麼有限,最終不得不做出諸如此類的怪異解決方案。 – Mikey
我剛剛在9276個用戶上測試過這個解決方案,它的工作非常好:) – omygoodness