我将mongoengine与Django和python结合使用。

这是我的代码:

class Chambre(EmbeddedDocument):
    max_personne = IntField(default=0)
    prix = IntField(default=0)

class Hotel(Document):
    code = IntField(default=0)
    nom = StringField(max_length=200)
    chambre = ListField(EmbeddedDocumentField(Chambre))
    resume = StringField(max_length=200)


1-我想查询所有具有至少Chambre且prix> = a(浮点数)的酒店

2-也有那个香波

任何想法?

最佳答案

您可以将embedded notatio n和Query Operator用于“大于或等于”

Hotel.objects(chambre__prix__gte=a)


或者,如果您需要强制转换为整数:

Hotel.objects(chambre__prix__gte=int(math.floor(a)))


如果只想投影“ matched”元素,请直接在驱动程序上使用原始查询:

Hotel._get_collection().find(
  { 'chambre.prix': { '$gte': int(math.floor(a)) } },
  { 'chambre.$': 1 }
)

10-07 23:51