【发布时间】:2016-03-17 21:07:17
【问题描述】:
上下文
我正在尝试创建一种搜索功能,允许用户填写多个字段、提交并查看来自一个集合的匹配项目列表。我在前端使用表单来执行此操作,该表单在后端更新会话变量,然后将其作为查询传递给 mongodb 集合。
应该如何工作
如果用户提交场地尺寸,则显示该尺寸的场地。如果只输入了一个位置,则显示该位置内的场所。如果同时提交了大小和位置,则会显示符合这两个条件的场地。
它是如何工作的
如果没有填写任何内容,则按搜索会生成集合中的所有项目。提交位置和规模会产生符合这两个标准的场所。但是,仅填写一个字段并将其他字段留空不会产生任何结果。我想知道为什么会这样 - 就好像查询正在搜索一个字面上包含 ''...非常感谢您的帮助!
代码片段
//Search Form Helper
Template.managevenues.helpers({
venue: function () {
var venueNameVar = Session.get('venueNameVar');
var venueLocationVar = Session.get('venueLocationVar');
if(venueNameVar || venueLocationVar){
console.log(venueNameVar);
console.log(venueLocationVar);
return Venues.find({
venueName: venueNameVar,
'venueAddress.neighbourhood': venueLocationVar
});
} else {
return Venues.find({});
}
});
【问题讨论】:
标签: javascript node.js mongodb meteor meteor-collections