简体   繁体   English

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM