Mongoose:使用 $or 进行跨多个字段的部分匹配

代码2代码

我有一个 MongoDB 查询,它在控制台中运行良好,可以跨多个字段获取部分匹配:

db.Col.find({ "$or": [ { "product": /Su/}, { "location": /Su/ },{ "category": /Su/ } , { "owner": /Su/ }] })

我在我的 angular 应用程序中使用猫鼬,但无法弄清楚如何构建它以使其工作。“过滤器”是来自我的 api 调用的文本。

exports.listPartialMatches = function(req, res) {
  var filter = req.params.filter;
  Col.find().or([ { "project": /filter/ }, { "location": /filter/ },{ "location": /filter/ } , { "owner": /filter/ }]).exec(function(err, mycol) {
    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      res.jsonp(mycol);
    }
  });
};

出于某种原因,上面返回一个空数组,而控制台命令则没有。我也试过 "/" + filter + "/" 和 /filter/i 但它们都返回空。

这里的实际 find() 调用是否有问题,还是部分匹配的字符串结构有问题?

代码2代码

我不知道如何使用 /filter/ 符号,但这有效:

exports.listPartialMatches = function(req, res) {
  var filter = req.params.filter;
  Col.find().or([ { "project": new RegExp(filter, "i") }, { "location": new RegExp(filter, "i") },{ "location": new RegExp(filter, "i") } , { "owner": new RegExp(filter, "i") }]).exec(function(err, mycol) {
    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      res.jsonp(mycol);
    }
  });
};

如果有人有更优雅的解决方案,请分享。这个看起来有点乱,但可以完成工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected]m 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用加权函数对多个字段上的搜索结果进行排序?

如何使用查询语法在Lucene中跨多个字段进行搜索?

如何使用Go Olivere / Elastic基于多个字段进行排序

如何使用QuerySets和MySql“全文搜索”在多个字段中进行Django搜索?

使用mongoose createConnection超时以进行Mocha测试

使用多个字段进行筛选/搜索-ASP.NET MVC

如何使用It.IsIn(someRange)对多个字段进行POCO属性组合的迭代?

我可以使用Angular-Filter对多个字段进行分组吗?

使用弹性搜索查询字符串匹配多个字段

Elasticsearch使用AND运算符无法匹配多个字段

MongoDb-如何使用Java对集合中的多个字段进行排序和搜索

跨多个字段进行精确搜索

在弹性搜索中的多个字段中使用多个参数进行搜索

使用SQL跨多个字段对输出进行分组

在排序期间使用多个字段进行键评估的pythonic方法是什么?

使用mongoose与Mongodb进行聚合

在Python中使用熊猫对多个字段进行索引

如何使用比较器对集合中的多个字段进行排序?

使用PDO从多个字段进行高级搜索

在多个字段上使用$ match进行汇总和$ lookup

使用Java Comparator根据条件使用多个字段进行排序

ElasticSearch:如何使用 Java 高级 REST 客户端跨多个字段执行搜索?

使用 Mongoose Virtual schema 时检查多个字段?

在 PostgreSQL 上使用 CROSS JOIN LATERAL 对具有多个字段的 Json 数组数据进行分组

使用 AWK 匹配 2 个文件之间的多个字段并显示特定字段

使用多个计数/总和跨多个字段进行透视

使用聚合 Mongoose 查询的结果,同时检查匹配(Mongoose/Express)

使用 mongoose 聚合计算多个字段

使用 Mongoose 在 MongoDB 中查询多个属性