使用所有键的mongodb group by

时间:2018-07-23 20:42:21

标签: mongodb-query

我收藏很多,我试图按所有文档的键分组,以便我可以检测到相似的文档。 这些文档可以具有不同的密钥或相似的密钥。 有什么可以按所有字段分组的吗?

1 个答案:

答案 0 :(得分:0)

您可以使用$$ROOT来引用整个文档:

样品收集:

db.getCollection('sample').insert({"x":"1","y":"2","z":"3"})
db.getCollection('sample').insert({"x":"1","y":"2","z":"3"})
db.getCollection('sample').insert({"x":"1","y":"2","z":"3","t":"4"})
db.getCollection('sample').insert({"x":"4","y":"5","z":"6","t":"7"})

查询:

db.sample.aggregate([
  {$project: {_id: 0}}, // remove the _id field
  {$group: {_id: '$$ROOT', count: {$sum: 1}}}, // group by the entire document
  {$match: {count: {$gte: 2}}} // get all duplicates
])