我正在尝试创建一个泛型方法,可以以相同的方式查询多个嵌套查询字段:
MyClass.prototype.myFind = function(myCollection, queryField, myValue, callback){
myCollection.find({queryField : myValue}, callback)
}
(显然这个查询没有意义,我的更复杂,但不是与问题相关的方式)
问题在于queryField
,将"myField.myNestedField"
传递给方法似乎无法正常工作,但当我使用"myField.myNestedField"
执行相同的查询时,它确实有效。有没有办法传入嵌套查询字段?
答案 0 :(得分:1)
问题是JavaScript问题,并且文档将始终作为“queryfield”发送,而不是您传入的变量,无论其符号如何。
您基本上需要使用“括号”[]
表示法来正确插入变量作为要使用的字段:
MyClass.prototype.myFind = function(myCollection, queryField, myValue, callback){
var query = {};
query[queryField] = myValue;
myCollection.find(query, callback)
}
现在它始终按预期工作。