MongoDB $setIntersection 运算符介绍

$setIntersection 是 Mongodb 中的一个数组运算符,用于返回两个数组的交集。可以用于在聚合管道中操作数组。

语法

$setIntersection 运算符的语法如下:

{ $setIntersection: [ <array1>, <array2>, ... ] }

其中,<array1><array2> 是要比较的数组。

使用场景

$setIntersection 运算符可以用于需要查找两个数组的交集的场景。例如,可以使用 $setIntersection 找到两个文档中共同存在的标签,或者在聚合管道中过滤出与给定数组有交集的文档。

示例

假设我们有以下两个文档,表示两个人的爱好:

{ "name": "Alice", "hobbies": ["swimming", "reading", "traveling"] }
{ "name": "Bob", "hobbies": ["swimming", "cooking", "reading"] }

我们可以使用 $setIntersection 找到 Alice 和 Bob 共同喜欢的爱好:

db.collection.aggregate([
  {
    $project: {
      commonHobbies: {
        $setIntersection: ["$hobbies", ["swimming", "reading"]]
      }
    }
  }
])

在上面的聚合管道中, $setIntersection 操作符返回 Alice 和 Bob 共同喜欢的爱好 ["swimming", "reading"]

结论

$setIntersection 运算符是 Mongodb 中用于返回两个数组的交集的一个便捷方法。它可以在聚合管道中使用,用于查找两个文档中共同存在的元素或过滤出与给定数组有交集的文档。