Как извлечь данные из базы данных MongoDB Stitch, не получая «Обещание в ожидании»? - PullRequest
1 голос
/ 13 апреля 2020

Я хотел бы написать API для базы данных MongoDB Stitch, которая была бы на Azure Функции. Поэтому я хотел бы получить все записи из всех коллекций, чтобы иметь возможность «выбросить их на экран».

Я пробовал во многих отношениях, но все равно с той же ошибкой - «Обещание {<в ожидании» >} ".

Мой код:

const {
    Stitch,
    RemoteMongoClient,
    AnonymousCredential,
} = require('mongodb-stitch-server-sdk');

const client = Stitch.initializeDefaultAppClient('APP_ID');
client.auth.loginWithCredential(new AnonymousCredential()).then(user => {
    // console.log(user);
    // client.close();
}).catch(err => {
    // console.log(err);
    // client.close();
})

const db = client
    .getServiceClient(RemoteMongoClient.factory, 'CLUSTER_ID')
    .db('main');

const collections = [
    'dogs',
    'cats',
    'birds',
];

// Creating an empty Json object
// const r_obj = JSON.parse('[]');

for (let collection of collections) {
    const r = db.collection(collection)

    r.find({})
        .toArray()
        .then(results => {
            console.log(`${results.length} documents in ${collection} collection`);
            // Adding other collections to the object
            // r_obj[collection].push(JSON.stringify(results));
        }).catch(err => {
            console.log(err);
        })
}

// Later, returning it as an exit in Azure Functions
// console.log(r_obj);

client.close()

Соединение с базой данных работает:

16 documents in cats collection
32 documents in dogs collection
334 documents in birds collection

Есть ли более простой способ получить все записи из всех коллекций? Но только то, что можно получить в Azure Функция - NodeJs.

...