Вы можете использовать $in
.
await Product.find({ features: { $in: ['5e209ea374df9a1a3fd4d3e0', '5ec566ba1b81f05db31ae91d'] } })
Это найдет продукт, который имеет любой из предоставленных идентификаторов функций.
Если вы хотите сопоставить продукт, который имеет все поставленные , то вы можете использовать $all
вместо $in
.
await Product.find({ features: { $all: ['5e209ea374df9a1a3fd4d3e0', '5ec566ba1b81f05db31ae91d'] } })
** Как указано ниже, $all
не будет работать, запрос предназначен для 2 идентификаторов, а их больше двух функции. **
Другой подход - использовать $and
.
await Product.find({ $and: [
{ features: '5e209ea374df9a1a3fd4d3e0'} ,
{ features: '5ec566ba1b81f05db31ae91d'}
]
})
Поскольку вы хотите ограничить размер до двух, в окончательном запросе будет показано,
await Product.find({ $and: [
{ features: '5e209ea374df9a1a3fd4d3e0'} ,
{ features: '5ec566ba1b81f05db31ae91d'}
{ features: { $size: 2 } }
]
})