我有一个包含几百万个文档的集合,我需要为其找到至少重复的文档。复制标准基于 2 个键,而不是一个。所以我需要找到至少 2 个文件都有{ property1 : value1, property2 : value2,}
。
为此,我尝试使用聚合 framewotk,如下例所示:
db.listings.aggregate({
$group:
{
_id : { property1 : "$property1", property2 : "$property2" },
count: { $sum: 1 }
},},{
$match : {
count: {
$gt : 1
}
}},{
$limit: 1})
我认为这应该可行,但 Mongo 返回以下错误:
{
"code" : 16390,
"ok" : 0,
"errmsg" : "exception: sharded pipeline failed on shard shard1: { errmsg: \"exception: aggregation result exceeds maximum document size (16MB)\", code: 16389, ok: 0.0}"
我也试过
db.collection.aggregate( { $group: { _id:
{ $concat: [ "$property1",
": ",
"$property2"
]
},
count: { $sum: 1 }
}
}
)
得到相同的结果
有没有人有更好的想法如何做到这一点?我不是真正的 mongo 专家,但我必须以一种或另一种方式做到这一点。
提前致谢