我正在尝试在我的网络应用程序中开发一个搜索器,我正在使用 mongodb ......所以......我有一个包含这些信息的文档。
{
"_id": "458734895734",
"name": "user",
"ref": "1",
"data": "fdnsfkjndjfn"
},
{
"_id": "3332423333",
"name": "user1",
"ref": "2",
"data": "dvsdvdvds"
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 $regex 将搜索与我的应用程序相匹配。所以我在我的服务器 node.js 中有这个。
db.users.find({
name: {'$regex': query, '$options': 'i'}
}).then((users) => {
res.json(users);
})
// var query, is just the pattern that i send from my web
Run Code Online (Sandbox Code Playgroud)
如您所见,我的服务器仅在“名称”字段中搜索,如何添加其他字段(如“引用”)并同时在两个字段中搜索?我已经检查了 mongodb 中的文档,但我找不到它...
Pav*_*ora 14
这是因为您编写查询的方式意味着它应该将给定的regex查询与所有传递的参数(如 and(&&) 操作)相匹配。您可以做的是对所有必填字段进行和或(||)操作。
这是您可以尝试的示例代码。
db.users.find({
"$or": [
{ name: { '$regex': query, '$options': 'i' } },
{ ref: { '$regex': query, '$options': 'i' } }
]
}).then((users) => {
res.json(users);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5592 次 |
| 最近记录: |