【问题标题】:How to get the element that not in collection?如何获取不在集合中的元素?
【发布时间】:2020-09-10 08:18:44
【问题描述】:

假设我有一个 {key:1},{key:2},{key:3} 的集合

我有一些数组[1,2,3,4,5,6,7]

我想获取集合中没有的元素。

在这个例子中,它将打印4,5,6,7

有可能吗?

【问题讨论】:

    标签: mongodb mongoose mongo-shell


    【解决方案1】:

    你可以使用$setDifference

    • $group by null,在elem中创建一个元素数组,
    • $project 使用 $setDifference 创建元素差异
    db.collection.aggregate([
      {
        $group: {
          _id: null,
          elem: { $push: "$key" }
        }
      },
      {
        $project: {
          elem: { $setDifference: [[1, 2, 3, 4, 5, 6, 7], "$elem"] }
        }
      }
    ])
    

    Playground

    【讨论】:

    • 谢谢你的作品,是否可以在分组前添加一些过滤器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 2014-08-19
    • 2016-02-26
    • 1970-01-01
    相关资源
    最近更新 更多