@kushnirukd

Как правильно сделать поиск по масиву объектов в mongoose?

Есть документы приблизительно такого вида:

{
    "_id" : -1340306864,
    "name" : "123",
    "prices" : [ 
        {
            "name" : "",
            "price" : 123231
        }
    ]
}
{
    "_id" : -1341439031,
    "name" : "123",
    "prices" : [ 
        {
            "name" : "123",
            "price" : 1.123
        }, 
        {
            "name" : "321",
            "price" : 0.1
        }
    ]
}


Нужно сделать сортировку по минимальным и максимальным ценам, запрос выглядит так:
Product.find({name : {$regex : ".*"+filters.name+".*"}, "prices.price": {$gte : filters.price.min|| 0, $lte: filters.price.max || 9999999}}, {description: false}, (err, data) => {
                if(err) return callback(err, null);
                return callback(null, data);
            }).limit(productsInPage).skip(filters.skipNumber);


Когда переменные filters.price.min и filters.price.max равны null все работает нормально, в другом случае когда хоть одна переменная не равна null выводит пустой массив. filters.price.min и filters.price.max 100% числа.
В чем моя ошибка ?
  • Вопрос задан
  • 481 просмотр
Решения вопроса 1
@lega
db.test.find({prices: {$elemMatch: {price: {$gte: 0.2, $lte: 2}}}})
https://docs.mongodb.com/manual/reference/operator...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы