2015-04-15 3 views
0

Я wannt создать подобный код:Как запросить в mongodb программно?

var result = Attributes.find({ 
    attribute_name : { 
    $exist : true, 
    $in : [1] 
} 
}); 

но programmically, поэтому я Цеат такой код:

var genQuery = '{ "' + by + '" : { "$exists" : true, "$in" : [' + data + ']} }'; 
var result = Attributes.find(genQuery); 

, но я получить стек ошибки максимум позвонить

, потому что результат JSON. parse (genQuery)

{ _id: { '$exists': true, '$in': [ 1 ] } } 

как запросить в mon программировать?

ответ

1

Ваша genQuery переменная, которую вы объявляете, является строкой, но вы не можете передавать строки в качестве селекторов или модификаторов в find(). Вы должны создать объект, чтобы сделать его работу:

var genQuery = {}; 
//use this notation to declare a new object key depending on a variable 
genQuery[by] = { 
    $exists: true, 
    $in: [1] 
}; 

var result = Attributes.find(genQuery); 
+0

спасибо за ответ, но до сих пор не работает – yozawiratama

+0

я тестировал его в существующем сборе, он должен работать, вы получаете ошибку? – Guillaume

+0

все еще такой же «максимальный стек вызовов» – yozawiratama

 Смежные вопросы

  • Нет связанных вопросов^_^