【问题标题】:Get data from mongoDB and Nodejs: toArray is not a function error [duplicate]从 mongoDB 和 Nodejs 获取数据:toArray 不是函数错误 [重复]
【发布时间】:2017-01-15 19:50:18
【问题描述】:

我有以下代码:

var user = User.find({}).limit(1).skip(10).toArray();

但我收到错误消息说 toArray 不是函数。

但如果我执行以下操作,我将获得所有记录:

User.find({}, function(err, users) {
        if(err) {
            res.send(err);
            return;
        }
        res.json(users);
    });

我正在为此目的使用猫鼬包。

我在这里遗漏了什么或做错了什么?

【问题讨论】:

  • 你在 'mongo cell' 上检查了吗?

标签: node.js mongodb mongoose


【解决方案1】:

mongoose 是 mongodb 之上的一层,它涵盖了几乎所有的 mongodb 查询/命令,但不是所有的,而且很少有它们在 mongoose 中的行为方式略有不同。在 toArray() 的情况下,mongoose.find() 返回一个查询对象,而不是游标。 toArray() 只对光标有效

Model.find().toArray() claiming to not have .toArray() method

【讨论】:

    【解决方案2】:

    Cursor class 上存在toArray 函数,来自Native MongoDB NodeJS driver 检查参考node-mongodb-native

    如果你使用mongoose,那么你可以在你的回调函数中转换它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2022-11-07
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多