2016-06-12 50 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();