node.js - 尝试在 Mongodb 中同时使用 $regex 查找多个字段

标签 node.js mongodb

我正在尝试在我的网络应用程序中开发一个搜索器,我正在使用 mongodb...所以...我有一个包含此信息的文档。

{
    "_id": "458734895734",
    "name": "user",
    "ref": "1",
    "data": "fdnsfkjndjfn"
},
{
    "_id": "3332423333",
    "name": "user1",
    "ref": "2",
    "data": "dvsdvdvds"
}

我正在使用 $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

如您所见,我的服务器仅在“名称”字段中搜索,我如何添加其他字段(例如“ref”)并同时在两个字段中搜索?我检查了 mongodb 中的文档,但找不到它......

最佳答案

这是因为您编写查询的方式意味着它应该与给定的 regex 查询与所有传递的参数(如 and(&&) 操作)相匹配。您可以做的是对所有必填字段进行与或(||)运算。

这里是您可以尝试的示例代码。

db.users.find({
    "$or": [
        { name: { '$regex': query, '$options': 'i' } },
        { ref: { '$regex': query, '$options': 'i' } }
    ]
}).then((users) => {
    res.json(users);
});

关于node.js - 尝试在 Mongodb 中同时使用 $regex 查找多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51932452/

相关文章:

node.js - 表单保存 POST 操作未路由到 Express 中的路由器

javascript - 在nodejs中获取文件(word、excel、ppt)元数据信息

java - 带有 MongoDB POST 和 GET 记录的 Spring Controller

javascript - 通过 React 从 mongoDB 中检索数据

javascript - Mongoose :为什么我没有收到错误响应

node.js - 如何从 saveAsync 返回 Mongoose 对象?

node.js - 如何防止结束消息关闭 Nodejs 流?

javascript - 存储用户 session : node. js、express、mongoose-auth

java - 这种情况会不会是mongodb服务器的bug呢?

node.js - 浏览器未设置 CORS cookie,响应中存在 cookie