Mongoose и MongoDB: получение результатов, суженных по нескольким параметрам

#node.js #mongodb #express #mongoose

#node.js #mongodb #экспресс #mongoose

Вопрос:

Мне нужно получить данные из MongoDB, которые сначала сужаются на одну начальную категорию, скажем, «{одежда: брюки}», а затем последующий поиск брюк определенного размера, используя массив типа sizes = [‘s’,’lg’,’6′, ’12’].

Мне нужно вернуть все результаты, в которых «брюки» соответствуют этим «размерам».

Я начал поиск с:

     Product.find({$and:[{categories:req.body.category, size:{$in:req.body.sizes}}]},
    function(err, products) {
        if (err) { console.log(err); }
        return res.send(products)
    });
 

Я действительно не знаю, куда идти дальше. Я просмотрел все документы Mongoose.

Какое-то направление было бы очень полезно.

Ответ №1:

Запросы mongoose могут получать объект, как и Mongodb. Таким образом, вы можете передавать параметры поиска, разделенные ,

 Product.find({categories:req.body.category, size:{$in:['s','lg','6', '12']}})
 

Для получения дополнительной информации о $in проверьте здесь

Для получения дополнительной информации о $ и operator, проверьте здесь (обратите внимание, что в некоторых случаях мы можем исключить оператор $ и, что я и сделал)