2016-06-12 34 views
1

我需要查询如下:在蒙戈DB使用变量作为一个字段值

Programs.find({ Teachers: { Week1: { Sunday: $elemMatch: { $eq: "MATT EDWARDS"}}}}).count(); 

...但是场“Week1”必须是一个动态值;它取决于变量的值。该变量是:

var week = "Week" + Session.get('CurrentWeek').substr(0, 1); 

直接替换将不起作用:

Programs.find({ Teachers: { week: { Sunday: $elemMatch: { $eq: "MATT EDWARDS"}}}}).count(); 

我不知道如何建立对象可以在查询的读取。

回答

3

你只是建立一个对象传递给Programs.find()。您可以利用的事实,

object.property 

是简写

object["property"] 

您可以使用,而不是一个字符串变量,使您能以实现自己的目标:

var query = { Teachers: {} }; 
var week = "Week" + Session.get('CurrentWeek').substr(0, 1); 
query.Teachers[week] = { Sunday: $elemMatch: { $eq: "MATT EDWARDS" } }; 

Programs.find(query).count();