通过节点连接到MongoDB之后,`find()`不能像`findOne()`一样工作

梅里克

我熟悉如何从Mongo Shell获取文档,但是在find()通过Node连接时很难使用文档

我现在得到的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()

巴斯·莫斯基蒂

是。find()返回一个游标,您必须在该游标上进行迭代。findOne()返回单个文档,而不是游标。如果需要结果数组,则必须通过迭代游标来“自行构建”,例如:

results = [];
db.collection('schedules').find().forEach(function(d) { results.push(d); });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过节点服务器连接到MongoDB的警告

Python:And or 条件不能像 if else 一样正常工作

Pyspark:火花提交不能像CLI一样工作

malloc 像 calloc 一样工作

按钮功能不能像另一个功能一样工作?

的getClass()不能工作一样的.class

像本例一样如何用TikZ链连接节点?

为什么这种转换不能像C#一样在Powershell中工作?

CSS三角形不能像正方形一样工作?

Perl6 hyper»运算符不能像地图一样工作

Task.Run不能像Thread.start一样工作

鱼壳中的Ctrl + S不能像bash一样工作

为什么用逗号分隔的Iterable不能像zip一样工作?

为什么通过电缆(同轴电缆)的千兆位/秒Internet连接不能提供像光纤一样的对称速度?

带连接的慢查询 - 像单个查询一样快速工作

如何通过细胞算术让熊猫像MS Excel一样工作?

外连接像内连接一样

为什么不能像变量一样覆盖管道?

jQuery克隆的div不能像原始功能一样?

在没有-X的ssh到机器之后,是否可以更改$ DISPLAY以使其像ssh -X一样工作?

为什么一个复杂的移位命令不能像某些具有相同逻辑的命令一样工作?

如何像haml一样连接“.erb”

为什么JavaScript(jquery)if语句不能像php if语句一样工作?什么是解决方案?

如何使键盘像OSX System Wide一样工作?

Android中的LocationListener是否像循环一样工作?

像Android布局一样工作的CSS框架?

如何使diff像git-diff一样工作?

使标记帮助程序像“ a”一样“按钮”工作

使mutt删除行为像苹果邮件一样工作