Node.js 和 Mongoose 正则表达式查询多个字段

Posted

技术标签:

【中文标题】Node.js 和 Mongoose 正则表达式查询多个字段【英文标题】:Node.js and Mongoose regex query on multiple fields 【发布时间】: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”的记录。我需要实现它,但遇到了麻烦。 【参考方案1】:

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

【讨论】:

以上是关于Node.js 和 Mongoose 正则表达式查询多个字段的主要内容,如果未能解决你的问题,请参考以下文章

node.js 增删改查(原始)

antd + node.js + mongoose小总结

Mongodb 以及 node.js中使用mongoose操作数据库

mongoose入门以及 mongoose 实现数据 的增删改查

Mongoose简要API

[转] Mongoose简要API