Я нашел несколько ответов для перечисления коллекций в оболочке, но все ответы, которые я нашел для перечисления коллекций в скрипте nodejs, похоже, были устаревшими, ответы вроде collectionNames
и moongose.connection.db
return не имеют метода.
Список всех коллекций в базе данных mongo в скрипте nodejs
Ответ 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());