mognoDb фильтрация по пересечению

Есть записи в бд такого вида

        {
            "_id": "5f91fa1e2d6d3c2ed04d7784",
            "externalId": 41,
            "name": "Тестовое название 40.82042322246649",
            "alias": "[{\"name\": \"Name1\", \"id\": 41}, {\"name\": \"Name2\", \"id\": 21, }]",
            "__v": 0
        }

хочу отфильтровать по полю alias

передаю такой ФИЛЬТР

 { alias: [41, 67, 123]  }

Я хочу получить все записи у которых поле alias содержит одно из любых значений из массива для фильтрации

Например значение поля alias из объекта выше "[{\"name\": \"Name1\", \"id\": 41}, {\"name\": \"Name2\", \"id\": 21, }]"

содержит первый элемент из массива фильтрации значит этот объект подходит.

Пытался использовать db.inventory.find( { alias: { $in: [ "A", "D" ] } } ) но это же на строгое равенство а мне надо что типа на вхождение одно из любых вариантов из фильтра


Ответы (1 шт):

Автор решения: твой кот

Так должно получиться:

db.inventory.find( { 'alias.id': { $in: [41, 67, 123] } } )
→ Ссылка