次の特徴を持つ約 1,100 万件のレコードがあります。
{
"_id" : ObjectId("57f29732595231d5fcb21faa"),
"PHONE" : NumberLong(593967848781),
"TRAFFIC" : NumberInt(0),
"ID_SUBPROD" : "PPA",
"TYPE" : "basic",
"MARCA" : "X",
"MODELO" : "G9"
}
一部の電話番号が重複しているかどうかを確認しようとしています。
「TYPE」の集計など、「PHONE」を除くすべてのフィールドでクエリと集計を実行できます。
db.Phonebase.aggregate({$group:{_id:"$TYPE", count:{$sum:1}}})
戻り値:
{
"_id" : "feature phone",
"count" : NumberInt(2323827)
}
{
"_id" : "basic",
"count" : NumberInt(2974583)
}
{
"_id" : "smartphone",
"count" : NumberInt(3461723)
}
{
"_id" : "",
"count" : NumberInt(2381208)
}
しかし、「PHONE」での集計:
db.Phonebase.aggregate({$group:{_id:"$PHONE", count:{$sum:1}}})
それぞれが見つかった回数ではなく、DB 内の電話番号の総数だけを返します。
{
"_id" : null,
"count" : NumberInt(11141341)
}
ここで何が欠けていますか?前もって感謝します。