У меня есть таблица под названием «файлы», в которой каждый объект имеет имя, родительский элемент и некоторые другие поля. То, что я хочу сделать, это указать имя файла, найти путь к корню (корень возникает, когда parent is ').Как я могу заставить Mongoose (работает на Node.js) запускать произвольную строку запроса?
У меня есть запрос, который отлично работает при запуске в терминале Монго:
var currentFile = parent;
var queue = [];
while(currentFile !== '') {
var file = db.files.find({ name: currentFile });
currentFile = file[0].parent;
queue.push(currentFile);
}
К сожалению, однако, Mongoose не позволяет (насколько я видел из документации) произвольных строк запросов. Я мог бы это сделать, если Mongoose разрешил синхронные запросы, но я тоже не могу найти эту способность.
решаемые
После повторного прочтения первого комментария, я обнаружил, что добиться того, что мне было нужно, мне нужно, чтобы добавить функцию обратного вызова для параметров, который вызывается, когда CurrentFile пуст
if(currentFile === '') {
callback();
else
recursiveFunc(currentFile, callback);
Я также добавил поле «путь», если я решил быть немного более эффективным :)
Спасибо, ребята, за помощь!
Как я могу назвать это и убедиться, что массив, который я получаю после вызова, содержит все элементы? Под «произвольной строкой запроса» я имею в виду отправить строку BSON (с некоторым JavaScript) на сервер MongoDB, выполнить ее и получить результаты a la MySQL. – user1121823
ooooh. позвольте мне немного изменить его. –