无法对ListField(嵌入式文档字段)进行查询

3
我有以下模型。
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))

我想搜索具有技能 (名字 = "计算机技能" 且 级别 >5) 的代理人。

我已经编写了以下查询:

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

如果代理人拥有名为“计算机技能”的技能,其级别为3,并且还拥有名为“英语技能”的技能,其级别为10,则该代理人将出现在查询结果中。
2个回答

2

0

我不使用Python驱动程序,但是你想要实现的一般Mongo语法是这样的...

db.agent.find({name:'ashraf', 'skills.name' : "computer skills", level:{ $gt: 5}})

我想查询具有技能名称x和该技能级别y的坐席。注意:代理商具有技能列表,每个技能都有名称和级别。 - Ashraf Fouda
我明白,除非我漏掉了什么,否则我提供的查询符合您的要求...它查询代理名称、技能名称和技能级别,在我的示例中删除 name:'ashraf',您将获得所有具有技能 x 和技能级别 y 的代理。 - raffian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接