【发布时间】:2017-07-20 12:06:32
【问题描述】:
我想用 NodeJS 在 mongodb 上进行正则表达式搜索。
第一个是用户,第二个是类别。在这里,我在用户中保存了类别 ID 收藏。我想要一个过滤我的记录的搜索查询。
用户集合
{_id:'mongo_id', name:"User First",cat_id:2}
{_id:'mongo_id', name:"User Second",cat_id:2}
{_id:'mongo_id', name:"User Third",cat_id:1}
{_id:'mongo_id', name:"User Fourth",,cat_id:4}
类别 假设 id 是数字。出于演示目的,我编写了数值。
{_id:'1', name:"Salesman",}
{_id:'2', name:"Carpanter"}
{_id:'3', name:"Plumber"}
{_id:'4', name:"Engineer"}
如果我要输入 Carpanter 或 Carpan(regex),我有一个文本输入,那么我想要 2 条记录,或者 当我输入 User Second 或 second 时,我想要 1 条记录
var query = {
'name': {
$regex: req.body.name,
$options: 'i'
}
};
innerQuery = {
path: 'category',
select: 'name'
}
Users.find(query)
.populate(innerQuery)
.sort({
'createdDate': -1
})
【问题讨论】:
-
请注意,正则表达式查询的性能并不高。如果您正在计划性能很重要的事情和/或数据库中有大量文档,您可能希望以不同的方式实现它。
标签: regex mongodb mongodb-query