вида: ['onion', 'bread', 'potato']
И есть рецепты примерно такого вида:
{
title: "Title",
ingredients: [
{
name: "bread"
quantity: 2
},
{
name: "potato",
quantity: 4
}
]
}
Как правильно сформировать запрос, чтобы получать выборку рецептов, которые содержат все ингредиенты из массива ингредиентов, но при этом не обращать внимание на их необходимое количество?
Вероятно, нужно как-то использовать оператор $all, но не совсем понимаю, как массив строк сравнивать с массивом объектов?
ты уверен что используешь правильную БД для своей задачи?
делаете условие $and:[ $elemMatch:{ ingredients.name: v1}, $elemMatch:{ ingredients.name: v2}, ..... ]
тут есть еще пример через $all и $elemMatch https://docs.mongodb.com/manual/reference/operator/query/all/
сравнивать через dot notation: {"ingredients.name": {$all: ["bread", "tomatoe»]}
Обсуждают сегодня