我有一個數百萬文件的集合,我需要找到至少重複的文檔。重複標準基於2個鍵,而不是一個。所以我需要找到至少兩個文件,它們都有{ property1 : value1, property2 : value2,}
。我如何獲得由mongo集合中的2個鍵標識的重複元素?
爲此,我想使用的總framewotk如下面的例子:
db.listings.aggregate({
$group:
{
_id : { property1 : "$property1", property2 : "$property2" },
count: { $sum: 1 }
},},{
$match : {
count: {
$gt : 1
}
}},{
$limit: 1})
我想這應該是工作,但 蒙戈返回以下錯誤:
{
"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 }
}
}
)
得到了同樣的結果
有沒有人有更好的主意如何做到這一點?我不是一個真正的孟戈專家,但我必須這樣或那樣做。
在此先感謝
在第一個_ $ group_之後,所有結果必須分組到一些_mongos_實例中,因此您的_ $ limit_命令沒有多大幫助。 – vinipsmaker 2013-05-13 21:12:24