Mongoengine查找没有字段的文档

Mongoengine find document without a field

我需要在 Chat 的集合中找到不包含 deal 字段的文档。根据文档exists checks if the field exist, and first,用于检索第一个结果,但下一行

Chat.objects.first(deal__exists=False)

加注TypeError: first() got an unexpected keyword argument 'deal__exists'

这就是Chat方案

class Chat(Document):
    id = IntField(primary_key=True)
    name = StringField(default=CHANNEL_NAME)
    invite_link = StringField(default=None)
    deal = ReferenceField("Deal", default=None)

以及集合中唯一文档的当前状态:

{
    "_id" : XXXXXXXXX,
    "name" : "XXXXX",
    "invite_link" : "https://t.me/joinchat/XXXXXXXXXXXXXXXXXXXXXX"
}

deal 的值 none 给出相同的结果

你可以试试:

Chat.objects.get(deal__exists=False)

Chat.objects(deal__exists=False)[0]

找到第一个结果。

花了我一段时间。

首先,方法first应该应用于Chat.objects(deal=None)的结果。就像 Chat.objects(deal=None).first().

并且它不应该在 with 语句中使用,因为它会引发 AttributeError: __enter__Here 是有关错误的更多详细信息