2016-08-02 3 views
1

Я пытаюсь сделать разбиение на страницы на Node.js, но mongoose с mongoose-paginate не работает с похожими выражениями.Как фильтр с mongoose-paginate

Я нашел Mongoose.js: Find user by username LIKE value, но результат всегда пуст.

My Entity содержит поле 'target'. В Entity.target есть объекты с «тестом». Мой код:

var filter = {}; 
    if (req.param('filter')) { 
     filter = { 
      target: new RegExp('^'+'test'+'$', "i") 
     } 
    } 

    var params = { 
     page: getPage(req), 
     limit: getCount(req) 
    }; 


    Entity.paginate(filter, params, function (err, result) {    
     res.json(result); 
    }); 

Если я запускаю запрос в Монго консоли, я получаю правильный результат:

{"target":{"$regex":"te","$options":"gi"}} 

Есть ли у вас какие-нибудь идеи?

ответ

1

Попробуйте изменить запрос фильтра

var filter = { "target": {} }; 
if (req.param('filter')) { 
    filter["target"]["$regex"] = new RegExp(req.param('filter'), "i");  
} else { 
    filter = { }; 
} 
Смежные вопросы