我将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 }
)