mongoを使って簡単なリーダーボードを作成しようとしています。 私はAPIをnode.jsでビルドしています。 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
}
]
私はこのようになります要求を取得してい:
User.find().sort({ points: '-1' }).exec(function(err, users) {
if (err)
res.send(err);
res.json(users);
});
を、別の指定されたIDを見つけるための要求を取得します。
User.findOne({id: req.params.id}, function(err, user) {
if (err)
res.send(err);
res.json(user);
});
私はユーザーのIDを送信し、彼についての情報を取得するだけです。 指定されたIDの最近隣を見つける方法がわかりません。たとえば、私はid:3のユーザーを見つけますが、彼の前に1人のユーザーを表示し、後に1人をポイントを使用して表示する方法もあります。
は、これはテストされていないだけでアイデアをあなた
あなたは私を昨日保存しました。あなたはもう一度やっています。ありがとうございました:) このソリューションは、例えば10000要素で動作するかどうか教えてください。私は2時間に1回そのような要求を送るでしょう。 – omygoodness
今、私は知らない。私がMongoDBを使用するほど、その制限された方法が増え、このような奇妙な解決策をやらなくてはなりません。 – Mikey
私はこのソリューションを9276ユーザーでテストしましたが、実際にはうまくいっています:) – omygoodness