有没有办法找到给定数组的哪些元素不在数据库中

时间:2019-08-21 06:27:32

标签: mongodb

我有一个文件:

    [
        {name: "Jack", age: "18"},
        {name: "Mark", age: "24"},
        {name: "Jane", age: "16"},
        ...
    ]

我有一个名字列表:

    ["Mark", "Bob", "Jack"]

有什么办法可以找到文件中没有的名字?就我而言,它将是[“ Bob”]。

1 个答案:

答案 0 :(得分:1)

主持人删除了重新发布评论,以便在答案中添加链接

如果有任何疑问,请在评论中告诉我,使用聚合管道尝试以下解决方案。

db.collection.aggregate([
  {
    $group: {
      _id: null,
      names: {
        $push: "$name"
      }
    }
  },
  {
    $project: {
      leftNames: {
        $setDifference: [
          [
            "Mark",
            "Bob",
            "Jack"
          ],
          "$names"
        ]
      }
    }
  }
])