gpt4 book ai didi

python - 无法查询 ListField(EmbeddedDocumentField)

转载 作者:可可西里 更新时间:2023-11-01 09:46:31 26 4
gpt4 key购买 nike

我有以下模型

class Skill(EmbeddedDocument):
name = StringField(required = True)
level = IntField(required = True)

class Agent(Document):
name = StringField(required = True)
email = EmailField(required = True, unique = True)
skills = ListField(EmbeddedDocumentField(Skill))

我想搜索具有(name = "computer skills and level >5)技能的特工

我写了以下查询:

 Agent.objects.filter(name='ashraf',  skills__level__gt=5,skills__name="Computer Skills")

如果 Agent 的技能名为“Computer skills”且级别为 3,并且还具有名为“English skills”的技能且级别为 10,则此 Agent 将出现在查询结果中

最佳答案

您需要执行一个 $elemMatch[1] 查询,目前 mongoengine 中没有内置支持。您必须像这样进行原始查询:

Agent.objects.filter(
name='ashraf',
__raw__={"skills": {
"$elemMatch": {
"level": {"$gt": 5},
"name": "Computer Skills"
}
}}
)

[1] http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24elemMatch

关于python - 无法查询 ListField(EmbeddedDocumentField),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com