【发布时间】:2019-11-08 15:23:36
【问题描述】:
我熟悉如何从 Mongo shell 获取文档,但是在通过 Node.js 连接时使用 find() 获取文档时遇到了困难。
我现在得到的看起来像是很多 cursor 信息,但不是实际的文档。
我需要对以下代码进行哪些更改,以便将实际文档记录到控制台以获取“结果”?
const config = require('./../../../configuration');
const url = config.get('MONGO_URL');
const dbName = config.get('MONGO_DATABASE');
const MongoClient = require('mongodb').MongoClient;
const client = new MongoClient(url);
module.exports = async function getSchedules() {
let results;
return new Promise((resolve, reject) => {
client.connect(async function (err) {
if (err) return reject(err);
try {
const db = await client.db(dbName);
results = await db.collection('schedules').find();
} catch (error) {
return reject(error);
}
return resolve(results);
});
});
};
...这里是我实际尝试获取文件的地方:
async function getSchedulesFromDB() {
await getSchedules().then((schedules => {
console.log('schedules: ', schedules); // expect result here
return schedules;
}));
}
当我在findOne() 上使用这种相同类型的代码结构时,它起作用了。但是在这里使用find() 时不是。我错过了什么? find() 的工作方式是否与 findOne() 有根本的不同?
【问题讨论】: