从具有重复字段值的查询中排除文档

Exclude documents from query with duplicate fields value

你能帮帮我吗? 如何使用 mongoengine 从查询集文档中排除具有相同值的字段?

假设,我有模型:

class A(Document):
    a = IntField()
    b = IntField()
    c = IntField()

数据库中的文档:

{'a':1, 'b':1, 'c':1 }
{'a':1, 'b':1, 'c':2 }
{'a':1, 'b':2, 'c':1 }

查询:A.objects() 我得到所有文件

如何查询获取文档:

{'a':1, 'b':1, 'c':1 }
{'a':1, 'b':2, 'c':1 }

它应该排除文档,如果查询集中有具有相同值 'a' 和 'b' 的文档在一起。 这样的文档应该只包含在查询集中一次。

一种方法是使用 聚合,像这样:

pipe = {"$group": {"_id": {"a": "$a", "b": "$b", "c": "$c"}}}
A.objects.aggregate(pipeline=pipe)

另一种方式是查询除_id以外的所有字段,然后从结果中计算出唯一记录。