我的/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/