像用mongoose-paginate过滤一样

时间:2016-08-02 11:39:26

标签: javascript node.js mongodb mongoose

我试图在Node.js上进行分页,但是使用mongoose-paginate的mongoose不适用于类似的表达式。

我找到Mongoose.js: Find user by username LIKE value,但结果总是空的。

我的实体包含'目标'领域。有些实体有' test'在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);
    });

如果我在mongo控制台中运行查询,我得到正确的结果:

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

你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试将过滤查询更改为

var filter = { "target": {} };
if (req.param('filter')) {
    filter["target"]["$regex"] = new RegExp(req.param('filter'), "i");       
} else {
    filter = { };
}