猫鼬:查找没有specyfic许多数据的所有行($ ne)

时间:2017-09-25 09:40:03

标签: node.js mongodb express mongoose mongodb-query

我在mongoose中遇到一个小问题,我想要选择除指定ID之外的所有行。

我的代码例如:

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

确切问题: 我有一个包含许多用户ID的变量,我想只选择没有这些ID的用户。

1 个答案:

答案 0 :(得分:2)

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

我们执行地图以获得像[123, 222, 333]

这样的简单ID
  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) {...});