[英]Mongoose not returning correct results when querying MongoDB using variables
I am trying to get a MongoDB query to work with a variable that takes inputs. 我正在尝试使MongoDB查询与需要输入的变量一起使用。
This is an example of the query that I want. 这是我想要的查询示例。 And when it is created this way it returns the correct results. 以此方式创建时,它会返回正确的结果。
var type = 'Math';
var query = User.find({'serviceInterests': type,'availability.Friday.2a':'false'});
When I create it that way, it doesn't produce any results: 当我以这种方式创建它时,不会产生任何结果:
var date = new Date();
var day = date.getDay();
var hour = date.getHours();
var min = date.getMinutes()/60;
if(min >= .5){
hour++;
}
if(hour > 12){
hour = `${hour - 12}p`
} else {
hour = `${hour}a`
}
var days = ['Sunday', 'Monday', 'Tuesday','Wednesday','Thursday','Friday','Saturday']
var type = 'Math';
var time = `${hour-12}-${hour -11}`;
var avail = `'availability.${days[5]}.${hour}'`
var connection = mongoose.connect(config.database);
var query = User.find({'serviceInterests': type, avail: 'false'});
我觉得很傻,使用ES6键语法解决了这个问题。
var query = User.find({'serviceInterests': type, [avail]: 'false' });
Did you try this: 您是否尝试过:
var params = {};
params[avail] = 'false';
params['serviceInterests'] = type;
var query = User.find(params);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.