在Mongo DB中使用变量作为字段值

时间:2016-06-12 01:34:24

标签: mongodb meteor

我需要查询以下内容:

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

...但是该领域"第1周和第34周;需要是一个动态的价值;它取决于变量的值。变量是:

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

直接替换不会起作用:

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

我不确定如何构建对象,可以在查询中读取。

1 个答案:

答案 0 :(得分: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();