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 是有关错误的更多详细信息
我需要在 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 是有关错误的更多详细信息