Mongodb Совпадение элементов в массиве - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь запросить массив в Монго с массивом тегов.
В качестве примера из документации ниже приведен мой набор данных

{
   { 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"] } } )

Как мне сделать этот запрос ИЛИ?

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Вам нужно использовать или оператор.При этом документы, содержащие теги черного или красного цвета, будут найдены.

db.collection.find({
$or: [
{
  tags: "red"
},
{
  tags: "black"
}
]
});

протестировано здесь: https://mongoplayground.net/p/rz_scGtT5z9

0 голосов
/ 24 августа 2018

Переместите все $ за $ или, и он должен сделать работу.

http://www.querymongo.com/

Может быть, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...