MongoDB: Как читать все документы из всех коллекций, используя expressjs? - PullRequest
3 голосов
/ 03 июня 2019

У меня есть mongobd с несколькими документами внутри нескольких коллекций, и я хочу просмотреть все из них.Ниже мой код,

const mongo = require('mongodb');
const url = 'mongodb://localhost:27017/test'

mongo.connect(url,{ useNewUrlParser: true },  data, (err, db)=>{
    console.log('connection success');

    db.db().listCollections().toArray(function(err, colls) {
        colls.forEach(element => {
            db.db().collection(element.name.toString()).find().toArray((err, doc) => {
                console.log(doc);
            });
        });
    });

    db.close();
})
}

это то, что я получаю из listCollections ()

[ ....,
{ name: 'documetn1',
type: 'collection',
options: {},
info: { readOnly: false, uuid: [Binary] },
idIndex:
 { v: 2, key: [Object], name: '_id_', ns: 'test.documetn1' } }, 
...]

как-то я получаю нулевое значение для потребности ниже

db.db().collection(element.name.toString()).find().toArray((err, doc) => {
                    console.log(doc);
                });

помогите здесь!

1 Ответ

1 голос
/ 04 июня 2019

Я пробовал ваш код, и каждая коллекция находила возврат на err "MongoError: Topology was destroyed".Как сказал Карлос Родригес в , этот ответ на вопрос, связанный с этой ошибкой Кажется, это связано с ранним db.close(), так что это можно исправить, например:

const mongo = require('mongodb');
const url = 'mongodb://localhost:27017/test'

mongo.connect(url, { useNewUrlParser: true },  data, (err, db) => {
    console.log('connection success');

    db.db().listCollections().toArray((err, colls) => {
        var collsPrinted = 0;
        colls.forEach(element => {
            db.db().collection(element.name).find().toArray((err, doc) => {
                console.log(doc);
                if (++collsPrinted == colls.length) db.close();
            });
        });
    });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...