Основная коллекция - розничный торговец, который содержит массив для магазинов. Каждый магазин содержит массив предложений (вы можете купить в этом магазине). Этот массив массивов имеет массив размеров. (См. Пример ниже)
Теперь я пытаюсь найти все предложения, доступные в размере 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 возвращать только предложения, которые соответствуют моему запросу?
Приветствия и благодарности.