首页 > 解决方案 > 通过 ID 数组检查文档是否存在

问题描述

如果具有该 ID 的文档不存在,我想返回 ID 数组。

架构是:

{
 id: Number,
 ...
}

我有一个数组:

let queryArr = [id1, id2, ...]

例如,我有这个集合:

{
 id: 1
},
{
 id: 2
},
{
 id: 3
}

并且queryArr[1,2,3,4,5]

所以,输出将是[4,5]

基本上,我将数组用于查询如下内容:

db.collection.find({
 id: queryArr               //IDK what to do here
});

标签: node.jsmongodb

解决方案


试试这个。另见$nin

db.collection.find({
  id: {
    $nin: [
      4,
      5
    ]
  }
})

这将返回以下数据

[
  {
    "_id": ObjectId("5a934e000102030405000000"),
    "id": 1
  },
  {
    "_id": ObjectId("5a934e000102030405000001"),
    "id": 2
  },
  {
    "_id": ObjectId("5a934e000102030405000002"),
    "id": 3
  }
]

或者您可以使用$in来获取包含在数组中的 id 的文档

db.collection.find({
      id: {
        $in: [
          4,
          5
        ]
      }
    })

游乐场


推荐阅读