近くにいる100人のユーザーを取得したいのですが、現在ブロックされているユーザーを削除して、ブロックされたユーザーが10人いる場合、返されるユーザーは90人ではなく100人になるようにします...
私はこのクエリを書きました(ノードにmongojsを使用):
db.users.find({location: {$near: [lng, lat]}, _id:{$ne: ObjectId('4ffeff845d46eaf1aa000002')}}, function(err, docs) {
if(!err) {
res.json(users);
};
}).limit(100);
これは機能しますが、ブロックされた1人のユーザーに対してのみ、ユーザーが複数のユーザーをブロックできるように、ユーザードキュメントにフィールドがあります。
{
...
blockedUsers: ['4ffeff845d46eaf1aa000002', '4ffeff845d46eaf1aa000012',....]
}
$ neの後にObjectIdの配列を追加するのに疲れましたが、何もしません。また、すべてのObjectIdが||で分割された変数を持つのにも疲れました。そしてそれもうまくいきませんでした。
私の質問は、100に制限されている最も近いユーザーをmongodbにクエリし、ブロックされているユーザーを削除して、クエリを実行した後にブロックされたユーザーを削除した場合、ブロックされたユーザーを差し引いたものではなく、実際に100を返すようにするにはどうすればよいですか?