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足够常见的情况,所以我希望有一个简单的方法来调整这个查询,以便它产生所需的结果。任何援助非常感谢。