0
我正試圖調整MongoDB上的聚合命令,以便忽略給定字段的重複項。這裏是一個示例文件:如何調整mongo聚合以忽略不相關字段中的重複項
{
"_id" : ObjectId("xxx"),
"dev_type" : "Foo"
"should_be_unique" : "abcdefg"
}
現在我的代碼搜索各種「dev_types」的計數。我希望保持該功能不變,同時減少計數,使其不會計入字段「should_be_unique」中的重複項。
我現有的Python代碼看起來是這樣的:
result_set = db.aggregate([
{"$match": match_condition},
{"$group": {"_id": {"dev_type": "$dev_type"},
"total": {"$sum": 1}}}, ])
這將返回此類結果:
{ "_id" : { "dev_type" : "Foo" }, "total" : 2 }
{ "_id" : { "dev_type" : "Bar" }, "total" : 7 }
我已經嘗試了幾個選項,但對我最好的,我可以」弄清楚最簡單的方法來改變這樣的查詢,同時也消除重複。這個想法是,如果兩個文檔具有相同的「should_be_unique」值,並且都將「dev_type」設置爲「Bar」,那麼「Bar」的總數將是6而不是7,這是由於重複造成的。
這似乎是Mongo足夠常見的情況,所以我希望有一個簡單的方法來調整這個查詢,以便它產生所需的結果。任何援助非常感謝。