像使用 mongoose-paginate 的过滤器

Posted

技术标签:

【中文标题】像使用 mongoose-paginate 的过滤器【英文标题】:Like filter with mongoose-paginate 【发布时间】:2016-12-07 17:57:55 【问题描述】:

我正在尝试在 Node.js 上进行分页,但带有 mongoose-paginate 的 mongoose 不适用于类似的表达式。

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

我的实体包含“目标”字段。 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】:

尝试将您的过滤查询更改为

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

【讨论】:

以上是关于像使用 mongoose-paginate 的过滤器的主要内容,如果未能解决你的问题,请参考以下文章

mongoose-paginate 按引用文档排序

mongoose-paginate 与 react 和 material-ui TablePagination - 单击 onChangePage 道具后第二页开始不呈现

为啥我不能像使用列表一样过滤 IQueryable?

过滤器会产生一个对象数组,就像使用 lodash 的 operator(%oil%) [重复]

如何使magento过滤器像类别一样工作

SQL Server Profiler 不像过滤器