【问题标题】:Node.js and Mongoose regex query on multiple fieldsNode.js 和 Mongoose 正则表达式查询多个字段
【发布时间】:2012-07-28 08:51:59
【问题描述】:

我想使用相同的正则表达式查询多个字段。在此查询中,我想接受单个文本输入并检查 firstName 和 lastName 字段的结果。我可以使用 mongoose 文档中的 regex 函数很好地查询单个字段,但是 'or' 子句的语法给我带来了麻烦。

var re = new RegExp(req.params.search, 'i');

app.User.find().or([{ 'firstName': { $regex: re }}, { 'lastName': { $regex: re }}]).sort('title', 1).exec(function(err, users) {
    res.json(JSON.stringify(users));
});

(我在 node.js 0.6.12 上运行 mongoose 2.7.1)

【问题讨论】:

  • 语法看起来不错;你能详细说说它给你带来的麻烦吗?
  • 天哪。这是一些糟糕的数据。事实证明,确实可以正常工作。
  • 如果您有一个名为“Joe Smith”的人并且有人搜索了“Joe S” - 没有结果?
  • 好问题。部分关键字匹配需要更强大的解决方案。
  • @MikeCauser:知道如何编写搜索查询,以防有人搜索“Joe S”并在结果中获得类似“Joe Smith”的记录。我需要实现它,但遇到了麻烦。

标签: regex node.js mongodb express mongoose


【解决方案1】:

上面的代码适用于多个字段的查询。原来我有一些不好的数据。

【讨论】:

    猜你喜欢
    • 2015-08-01
    • 2013-10-23
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2012-12-15
    • 2014-10-08
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多