Я использую драйвер Node.js для MongoDB и не создаю проблем с созданием объектов запроса за пределами вызова find(), пока не попытаюсь ввести конструкцию $or
в микс.Генерация запросов динамического mongodb с драйвером Node.js
Я пытаюсь динамически генерировать запрос, потому что у меня есть переменное количество параметров и предпочел бы, чтобы у НЕ было столько вызовов в collection.find, как у меня есть параметры.
Для этого я использую запрос просто:
var query = {};
query['name'] = 'Steve';
query['date_created'] = '<some date>';
mongo_collection.find(query, function(err, c) {});
Однако, когда я пытаюсь использовать $ или весь процесс разваливается.
Я попытался каждый из следующих не радость:
var query = {};
1.
query[$or] = [ { 'field' : 'value1' }, { 'field' : 'value2' } ];
query['date_created'] = '<some date>';
2.
query = { $or : [ { 'field' : 'value1' }, { 'field' : 'value2' } ] };
query['date_created'] = '<some date>';
3.
query = eval("[ { 'field' : 'value1' }, { 'field' : 'value2' } ]");
query['date_created'] = '<some date>';
В каждом случае $or
завернут в кавычки (честно говоря, я не уверен, что это проблема или нет ...), и запрос завершается с ошибкой.
Есть ли способ сделать это?
это бросает ошибку или это просто не возвращает никаких данных? – c0deNinja