mongoengine – Consulta en ListField de EmbeddedDocumentField

Yo uso mongoengine con Django y python.

Este es mi código:

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 – Quiero una consulta para filtrar todos los hoteles que tienen al menos un Chambre con prix> = a (un número de trampa)

2 – También tenemos que Chambre.

¿Alguna idea?

Puede usar la notación integrada así como el operador de consultas para “mayor o igual”

 Hotel.objects(chambre__prix__gte=a) 

O si necesita convertir como un entero:

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

Si solo desea proyectar el elemento “coincidente”, use una consulta sin procesar directamente en el controlador:

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