2017-09-25 55 views
0

我在猫鼬中有一个小问题,我想选择除指定id之外的所有行。

我的示例代码:

var ids = [{id: 123},{id: 222},{id:333}]; 
User.find({_id: {$ne: ids.id }},'firstName lastName _id avatar',function (err,users) {...}); 

确切的问题: 我有很多的用户ID的变量,我想只选择用户,无需这些ID。

+0

普通阵列如果阵列有再搭配集'_id'场您只需将查询使用精确键[**'$执行地图也不是'**](https://docs.mongodb.com/manual/reference/operator/query/nor/)var id = [{“_id”:123},{“_id”:222},{ “_id”:333}]; User.find({“$ nor”:ids},'firstName lastName _id avatar',function(err,users){...});' – chridam

回答

2

我们将使用mongodb中的$nin,它从结果中排除给定的数组。

我们才能有ID的像[123, 222, 333]

const ids = [ 
    { 
     id: 123, 
    }, { 
     id: 222, 
    }, { 
     id: 333, 
    }]; 

    User.find(
    // Query 
    { 
    _id: { 
     $nin: ids.map(x => x.id), 
    }, 
    }, 

    // Projection 
    'firstName lastName _id avatar', 

    // Callback 
    function (err,users) {...});