javascript - 如何将 mongodb 中的搜索值与 mongoose 绑定(bind)

标签 javascript node.js mongodb mongoose

我的/search/:query 路由中有以下代码:

var param = {
    query: req.query['query']
}

MyModel.find({
        "$or": [
            { 'name': req.param.query },
            { 'age': req.param.query  },
            { 'event': req.param.query },
        ]
    }, function (err, results) {
        if (err) {
            console.log(err)
        }
        else {
            res.render('index', { 
                data: results
            });
        }
    }
);

这很好,我可以搜索几乎所有我想要的数据,但只能单独搜索。如果我想要搜索姓名+年龄怎么办?示例:“Leo 22”。

Mongoose 有什么办法可以帮助我吗?

更新:

我的问题是:

我有表格列出了它的标题,这个标题是“eventName”和“eventDate”的串联。

该字段的真实示例:

“特别事件 - 2015 年 12 月 20 日” “经典事件 - 2015 年 12 月 3 日” “炎热的夏季事件 - 05/07/2005”

每周将创建 4 个事件。在某些时候,用户会搜索旧事件,我相信用户会以这种格式搜索:“事件名称 - 事件日期”..

所以我需要一种方法来在我的 Controller 中绑定(bind)这些值。

最佳答案

我不熟悉 mongoose 但为了做到这一点,您必须有一种方法将查询参数绑定(bind)到您想要搜索的属性。否则,他们不会知道 Leo 是名字,22 是年龄。

你的路径就像search?name=:name&age=:age&event=:event,在你的代码中,你必须像参数不null那样进行处理>,添加条件。

关于javascript - 如何将 mongodb 中的搜索值与 mongoose 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28101756/

相关文章:

javascript - 使用 dojo 的 RectangleRangeIndicator 格式类似于三 Angular 形

node.js - 在express.js View 中包含函数和类

node.js - ubuntu无法安装jsdom

node.js - 如何使用 Nodejs 对从 mongoDB 获取的数据求和

node.js - 如何在 Docker 容器中运行数据库服务?

javascript - 蒙戈数据库 : Find and insert if time slots doesn't conflict with other time slots

javascript - 在谷歌地图 API 3 中切换位置

javascript - 获取掉落到输入元素时的值更改事件

node.js - 如何处理内部服务器 API 和 HTTP API 之间的错误

javascript - 从 JSON 结果创建 JSON 结构