Список всех коллекций в базе данных mongo в скрипте nodejs

Я нашел несколько ответов для перечисления коллекций в оболочке, но все ответы, которые я нашел для перечисления коллекций в скрипте nodejs, похоже, были устаревшими, ответы вроде collectionNames и moongose.connection.db return не имеют метода.

Ответы

Ответ 1

В версии 2.0 драйвера MongoDB для node.js вы можете использовать listCollections для получения курсора, который содержит информацию обо всех коллекциях. Затем вы можете вызвать toArray на курсор для получения информации.

db.listCollections().toArray(function(err, collInfos) {
    // collInfos is an array of collection info objects that look like:
    // { name: 'test', options: {} }
});

Ответ 2

Если у вас есть доступ к async/await, гораздо проще обещать toArray на итераторе и не использовать обратный вызов.

static toArray(iterator) {
  return new Promise((resolve, reject) => {
    iterator.toArray((err, res) => {
      if (err) {
        reject(err);
      } else {
        resolve(res);
      }
    });
  });
}
const myArray = await toArray(db.listCollections());