Не работает find() для вложенного ключа MongoDB

Рейтинг: 0Ответов: 1Опубликовано: 20.04.2023

Структура БД:

name: value
type: value
categories: Array
    [0]: Object
         type: value
         name: value
    [1]: Object
         type: value
         name: value

Нужно найти все элементы, у которых в categories значение name = 'TestCategory1' или 'TestCategory2'

Я использую Mongoose, вот мой запрос (не работает):

Media.find({ categories: { name: { $in: ['TestCategory1', 'TestCategory2'] } } })

Я не совсем разбираюсь в этих запросах, подскажите как его сформировать правильно.

Когда я ищу все элементы по конкретным значениям, я использую этот запрос, он работает:

Media.find({ categories: { '$all': [ { type: 'Image', name: 'TestCategory1' } ] } })

Ответы

▲ 0Принят
db.collection.find({
  "categories.name": {
    $in: [
      "TestCategory1",
      "TestCategory2"
    ]
  }
})

Playground