考虑以下集合,其中父文档具有值为
100000
的 amount
字段,并且嵌入的文档数组具有相同的 amount
字段和相同的值。{
"_id" : ObjectId("5975ce5f05563b6303924914"),
"amount" : 100000,
"offers" : [
{
"amount": 100000
}
]
}
有没有一种方法可以匹配所有至少含有一个嵌入式文档offer
并且其数量与父文档相同的对象?
例如,如果我查询以下内容,它可以正常工作:
find({ offers: { $elemMatch: { loan_amount: 100000 } } })
但是我不知道实际查询中100000
的值,我需要使用一个变量来代替父文档数量字段。类似这样:
find({ offers: { $elemMatch: { loan_amount: "parent.loan_amount" } } })
感谢您的建议。我希望用$eq
或$elemMatch
来实现这个功能,避免使用聚合查询,但也许这是不可能的。