【问题标题】:How to find raw mongodb documents via mongoose?如何通过 mongoose 查找原始 mongodb 文档?
【发布时间】:2019-03-14 06:31:57
【问题描述】:

我正在尝试通过 mongoose 查找原始文档。

Model.collection.find({}, { skip : BATCH*pgi, limit : BATCH }, function(err, docs){

在这里,我希望文档是原始 mongodb 文档。

但我不明白。

如何获取上述情况下的原始文档?

【问题讨论】:

  • 您正在使用 .collection() 访问器,这意味着 Mongoose 不再参与其中。这里的问题是您正在返回一个“光标”,这与 mongoose 方法的操作方式不同。它们默认转换为数组。
  • 但它没有 hasNext() 功能。相反,它只有 nextObject。我如何遍历文档
  • 那是因为.collection访问器和后续的.find()操作返回了一个与节点原生驱动Cursor()接口一致的Object。唯一有效的方法是那些在那里实现的。这不是 MongoDB shell。
  • @Koka 不清楚您最终要做什么,但您是否考虑过使用lean() 而不是使用本机驱动程序?

标签: mongodb mongoose


【解决方案1】:

Model.find({}).lean()怎么样?

【讨论】:

    【解决方案2】:

    在光标对我有用后使用 toArray

    Model.collection.find({}).skip(BATCH*pgi).limit(BATCH).toArray(function(err, docs){
    });
    

    【讨论】:

    • 但这似乎非常昂贵.. 寻找更好的答案
    猜你喜欢
    • 2013-02-06
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多