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