У меня есть документ A
, который содержит ListField b
определенного типа EmbeddedDocument B
, который имеет два StringFields x
и y
.
class B(EmbeddedDocument):
x = StringField()
y = StringField()
class A(Document):
b = ListField(EmbeddedDocumentField(B))
Сначала заполним их:
b1 = B(x="x1", y="y1")
b2 = B(x="x2", y="y2")
a = A(b=[b1, b2])
a.save()
Я хочу найти экземпляр A
, который содержит определенную запись B
со значениями x=x1
и y=y1
.
Я попытался построить запрос с двумя contains
, по одному для каждого значения.
A.objects(b__x__contains="x1", b__y__contains="y1")
[<A: A object>]
Случай успеха работает. Проблема в том, что условия независимы, тогда им могут соответствовать разные записи списка b
:
A.objects(b__x__contains="x1", b__y__contains="y2")
[<A: A object>]
Есть ли способ в MongoEngine гарантировать, что эти два условия будут применяться в одной и той же записи?
Заранее спасибо.