Mongodb 查询每个文档的数组的不同值

Mongodb 查询每个文档的数组的不同值,mongodb,Mongodb,例如,我收集了一堆文件 { 项目:[目标1、目标2等] } 如何运行查询以识别哪些文档具有重复项。distinct在集合中返回不同的值,但我希望能够报告每个文档: 项目的长度/大小 唯一/不同项目的长度/大小 基本上,要了解哪些文档在项数组中具有重复项。可以使用聚合运算符在集合中具有唯一项: db.collection.aggregate([ { "$unwind": "$items" }, { "$group&quo

例如,我收集了一堆文件

{ 项目:[目标1、目标2等] }

如何运行查询以识别哪些文档具有重复项。distinct在集合中返回不同的值,但我希望能够报告每个文档:

项目的长度/大小 唯一/不同项目的长度/大小
基本上,要了解哪些文档在项数组中具有重复项。

可以使用聚合运算符在集合中具有唯一项:

db.collection.aggregate([
  {
    "$unwind": "$items"
  },
  {
    "$group": {
      "_id": "$_id",
      "items_cnt": {
        "$sum": 1
      },
      "unique_items": {
        "$addToSet": "$items"
      }
    }
  },
  {
    "$project": {
      "items_cnt": 1,
      "unique_items_cnt": {
        "$size": "$unique_items"
      }
    }
  }
])

您可以使用聚合运算符在集合中具有唯一项:

db.collection.aggregate([
  {
    "$unwind": "$items"
  },
  {
    "$group": {
      "_id": "$_id",
      "items_cnt": {
        "$sum": 1
      },
      "unique_items": {
        "$addToSet": "$items"
      }
    }
  },
  {
    "$project": {
      "items_cnt": 1,
      "unique_items_cnt": {
        "$size": "$unique_items"
      }
    }
  }
])