我正尝试使用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