![](/img/trans.png)
[英]Mongoose / mongoDb search where I need values of unpopulated property
[英]How bind search values in mongodb with 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
});
}
}
);
很好,我可以搜索几乎所有我想要的数据,但只能单独搜索。 如果我想输入搜索名称+年龄怎么办? 例如:“狮子座22”。
猫鼬有什么办法可以帮助我呢?
更新:
我的问题是:
我有表格列出了标题,该标题是“ eventName”和“ eventDate”的串联。
该字段的真实示例:
'特别活动-2015年12月20日''经典活动-2015年12月3日''夏季热活动-2005年5月7日'
每周将创建4个事件。 在某个时候,用户将搜索旧事件,我相信用户将以以下格式搜索:“事件名称-事件日期”。
因此,我需要一种在控制器中绑定此值的方法。
我不熟悉mongoose
但是要做到这一点,您必须有一种将查询参数绑定到要搜索的属性的方法。 否则,他们不会知道Leo
是名字,而22
是年龄。
您的路径就像search?name=:name&age=:age&event=:event
,在您的代码中,您必须像处理param不为null
一样对其进行处理和添加条件。
似乎您仅使用一个参数( req.param.query
)来过滤所有属性。 这与猫鼬无关:您可以为每个属性创建不同的参数,并将其沿查询字符串传递。
例如:
"$or": [
{ 'name': req.param.name },
{ 'age': req.param.age },
{ 'event': req.param.event },
]
您的HTTP请求将如下所示:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.