MongoDB,查找附近的用户但删除被阻止的用户而不影响限制

时间:2012-07-12 18:07:31

标签: mongodb mongodb-query

我想获取附近的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);

这只适用于一个被阻止的用户,我在用户文档中有一个字段,以便用户可以阻止多个用户:

{
    ...
    blockedUsers: ['4ffeff845d46eaf1aa000002', '4ffeff845d46eaf1aa000012',....]
}

我已经厌倦了在$ ne之后添加一个ObjectId数组,但它什么也没做,我也厌倦了一个变量,所有的ObjectId都被||分开了而且也没能奏效。

我的问题是如何查询mongodb最近的用户限制为100,删除被阻止的用户,以便实际返回100而不是减去被阻止的用户,如果我在查询后删除它们?

1 个答案:

答案 0 :(得分:2)