传递嵌套文档查询字段

时间:2015-09-09 09:27:56

标签: javascript node.js mongodb mongodb-query

我正在尝试创建一个泛型方法,可以以相同的方式查询多个嵌套查询字段:

MyClass.prototype.myFind = function(myCollection, queryField, myValue, callback){
    myCollection.find({queryField : myValue}, callback)
}

(显然这个查询没有意义,我的更复杂,但不是与问题相关的方式)

问题在于queryField,将"myField.myNestedField"传递给方法似乎无法正常工作,但当我使用"myField.myNestedField"执行相同的查询时,它确实有效。有没有办法传入嵌套查询字段?

1 个答案:

答案 0 :(得分:1)

问题是JavaScript问题,并且文档将始终作为“queryfield”发送,而不是您传入的变量,无论其符号如何。

您基本上需要使用“括号”[]表示法来正确插入变量作为要使用的字段:

MyClass.prototype.myFind = function(myCollection, queryField, myValue, callback){
    var query = {};
    query[queryField] = myValue;
    myCollection.find(query, callback)
}

现在它始终按预期工作。