AggregateCommand.setIntersection(value: Expression[]): Object

支持端:小程序 2.7.4 起, 云函数 0.8.1

聚合操作符,输入两个集合,输出两个集合的交集。

参数

value: Expression[]

[<expression1>, <expression2>]

返回值

Object

API 说明

使用形式如下:

  1. setIntersection([<expression1>, <expression2>])

示例代码

假设集合 test 存在以下数据:

  1. { "_id": 1, "A": [ 1, 2 ], "B": [ 1, 2 ] }
  2. { "_id": 2, "A": [ 1, 2 ], "B": [ 2, 1, 2 ] }
  3. { "_id": 3, "A": [ 1, 2 ], "B": [ 1, 2, 3 ] }
  4. { "_id": 4, "A": [ 1, 2 ], "B": [ 3, 1 ] }
  5. { "_id": 5, "A": [ 1, 2 ], "B": [ ] }
  6. { "_id": 6, "A": [ 1, 2 ], "B": [ {}, [] ] }
  7. { "_id": 7, "A": [ ], "B": [ ] }
  8. { "_id": 8, "A": [ ], "B": [ 1 ] }

下面的代码使用 setIntersection,输出两个集合的交集:

  1. db.collection('test')
  2. .aggregate()
  3. .project({
  4. commonToBoth: $.setIntersection(['$A', '$B'])
  5. })
  6. .end()

输出如下:

  1. { "_id": 1, "commonToBoth": [ 1, 2 ] }
  2. { "_id": 2, "commonToBoth": [ 1, 2 ] }
  3. { "_id": 3, "commonToBoth": [ 1, 2 ] }
  4. { "_id": 4, "commonToBoth": [ 1 ] }
  5. { "_id": 5, "commonToBoth": [ ] }
  6. { "_id": 6, "commonToBoth": [ ] }
  7. { "_id": 7, "commonToBoth": [ ] }
  8. { "_id": 8, "commonToBoth": [ ] }