2016-08-22 36 views
0

如何使用变量作为我正在搜索的键来查询mongodb?试图用变量作为键来查询猫鼬

数据:

const schedule = { 
    day0: [10, 1440], 
    day1: [10, 1440], 
    day3: [10, 1440], 
    day6: [10, 1440], 
} 

查询

User.find({ `schedule.${varHere}` { $exists: true}}, (err, users) => { 
    console.log(users) 
}) 
+0

的[我如何将属性添加到使用变量作为名称的JavaScript对象?(可能的复制http://stackoverflow.com/questions/695050/how-do- i-add-a-property-to-a-javascript-object-using-a-variable-as-the-name) – Matt

回答

1

您需要首先要么建立一个对象使用ES6 computed propery names

const query = { [`schedule.${varHere}`]: { $exists : true } }; 

或使用表达式作为属性名称

const query = {}; 
query[`schedule.${varHere}`] = { $exists: true }; 

然后

User.find(query, (err, users) => { 
    console.log(users) 
}) 
+0

非常感谢你 User.find({['schedule。$ {day}'] :{$ exists:true}},(err,users)=> {console.log(users) }) 像一个魅力 –