отфильтровывать похожие товары из коллекции mongodb

#mongodb #mongodb-query #aggregation

Вопрос:

Документ продукта:

 title: 'product title',
price: 240,
tags: [ 'snacks', 'vegetable' ],
 

Поисковый запрос пользователя: /search?tags=snacks,fruit,juice . Здесь пользователь выбрал несколько тегов ( snacks, fruit and juice ). Я хочу выбрать все документы, которые содержат хотя бы один из тегов, которые пользователь искал с помощью конвейера агрегации mongodb.

Ответ №1:

Вы можете использовать $in оператор для поиска документов, в которых поле содержит любой элемент в заданном массиве.

 {
  tags: { 
    $in: ['snacks', 'fruit', 'juice' ]
  }
} 

Ответ №2:

$in

 db.collection.find({
  "tags": {
    "$in": [
      "snacks",
      "fruit",
      "juice"
    ]
  }
})
 

mongoplayground