【问题标题】:Like filter with mongoose-paginate像使用 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"}}

你有什么想法吗?

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-11-10
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 2015-06-09
      • 2012-08-28
      • 1970-01-01
      • 2017-01-06
      • 2016-01-08
      相关资源
      最近更新 更多