少なくとも重複するドキュメントを見つける必要がある数百万のドキュメントを含むコレクションがあります。重複基準は、1 つではなく 2 つのキーに基づいています。したがって、両方が持っている少なくとも2つのドキュメントを見つける必要があります{ property1 : value1, property2 : value2,}
。
このために、次の例のように集約フレームワークを使用しようとしています:
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 }
}
}
)
同じ結果が得られました
これを行う方法を知っている人はいますか? 私は本当にモンゴの専門家ではありませんが、これを何らかの方法で行う必要があります。
前もって感謝します