主集合是 Retail,它包含一个商店数组。每个商店都包含一个优惠数组(您可以在这个商店购买)。这提供了数组的大小数组。(见下面的例子)
现在我试图找到所有报价,这是在大小 L
可用。
{
"_id" : ObjectId("56f277b1279871c20b8b4567"),
"stores" : [
{
"_id" : ObjectId("56f277b5279871c20b8b4783"),
"offers" : [
{
"_id" : ObjectId("56f277b1279871c20b8b4567"),
"size": [
"XS",
"S",
"M"
]
},
{
"_id" : ObjectId("56f277b1279871c20b8b4567"),
"size": [
"S",
"L",
"XL"
]
}
]
}
}
我试过这个查询: db.getCollection('retailers').find({'stores.offers.size': 'L'})
我期待一些像这样的输出:
{
"_id" : ObjectId("56f277b1279871c20b8b4567"),
"stores" : [
{
"_id" : ObjectId("56f277b5279871c20b8b4783"),
"offers" : [
{
"_id" : ObjectId("56f277b1279871c20b8b4567"),
"size": [
"S",
"L",
"XL"
]
}
]
}
}
但是我的查询的输出也包含与 size
XS、 X 和 M 不匹配的报价。
如何强制 MongoDB 只返回与我的查询相匹配的报价?
你好,谢谢。