Я пытаюсь запросить массив в Mongo с массивом тегов. В качестве примера из документации ниже мой набор данных
{
{ item: "journal", qty: 25, tags: ["blank", "red"], dim_cm: [ 14, 21 ] },
{ item: "notebook", qty: 50, tags: ["red", "blank"], dim_cm: [ 14, 21 ] },
{ item: "paper", qty: 100, tags: ["red", "blank", "plain"], dim_cm: [ 14, 21 ] },
{ item: "planner", qty: 75, tags: ["blank", "red"], dim_cm: [ 22.85, 30 ] },
{ item: "postcard", qty: 45, tags: ["blue"], dim_cm: [ 10, 15.25 ] }
}
Я хочу запросить теги с помощью массива ["red", "black"], который найдет результаты, в которых теги содержат красный ИЛИ черный
Я могу сделать это там, где он дает мне результаты для элементов, где теги красные И черные, используя
db.inventory.find( { tags: { $all: ["red", "blank"] } } )
Как мне сделать это запросом ИЛИ?

Переместите $ all на $ или, и он сделает свою работу.
Может это поможет
Хм MongoError: unknown operator: $or
Фараз понял (я только начал программировать и решил, что это будет выглядеть как sql-операторы с и / или / all / any)
Вам нужно использовать оператор или. В результате будут найдены документы, содержащие черные или красные теги.
db.collection.find({
$or: [
{
tags: "red"
},
{
tags: "black"
}
]
});
протестировал здесь: https://mongoplayground.net/p/rz_scGtT5z9
Хм все равно здесь не работает .find({ userId: 'uzNWm9YF0rZbDkrIyPLKz9owUSO2', tags: { '$or': [ { tags: '94HhqHzrhLl4kYWYRuVv' }, { tags: '5HYgQEbIKhb36SZNRihM' } ] } } Неизвестный оператор $ или
А, я понимаю, оператор $ или должен находиться на родительском уровне, а не внутри самих тегов.
может это
db.collection.find({ $or: [ { tags: "red" }, { tags: "black" } ] })??