使用变量查询MongoDB时,Mongoose没有返回正确的结果

时间:2018-01-31 21:33:45

标签: node.js mongodb mongoose

我正在尝试使用MongoDB查询来处理需要输入的变量。

这是我想要的查询示例。当它以这种方式创建时,它会返回正确的结果。

var type = 'Math';
var query = User.find({'serviceInterests': type,'availability.Friday.2a':'false'});

当我以这种方式创建它时,它不会产生任何结果:

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'});

2 个答案:

答案 0 :(得分:0)

我感到愚蠢,使用ES6键语法解决了这个问题。

 var query = User.find({'serviceInterests': type, [avail]: 'false' });

答案 1 :(得分:0)

你试过这个:

var params = {};
params[avail] = 'false';
params['serviceInterests'] = type;

var query = User.find(params);