Pymongo-在原始查询的结果中排除字段

时间:2019-07-15 18:15:12

标签: python-3.x pymongo mongoengine

根据MongoEngine Docs on Raw Queries,当获取这样的对象集合时,可以在Python中使用原始查询:

Page.objects(__raw__={'tags': 'coding'})

使用这种方法从结果中排除特定字段的例子是什么?

2 个答案:

答案 0 :(得分:1)

您不能为此使用__raw__,您有2个选择:

使用mongoengine,您需要使用exclude

Page.objects(__raw__={'tags': 'coding'}).exclude('field1', 'field2')

使用pymongo(底层驱动程序)-但是您将无法在mongoengine Page实例上进行迭代,而只能在简单的dict(即pymongo的输出)上进行迭代:

page_collection = Page._get_collection()
query = page_collection.find({'tags': 'coding'}, {'field1': False, 'field2': False})

答案 1 :(得分:0)

如果我正确理解了您的意思,则可以使用原始查询使用$not之类的mongodb语法

示例:

Page.objects(__raw__={'tags': { '$not':'coding'}})