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 正则表达式查询多个字段的主要内容,如果未能解决你的问题,请参考以下文章
Mongodb 以及 node.js中使用mongoose操作数据库