从 mongoDB 和 Nodejs 获取数据:toArray 不是函数错误 [重复]

Posted

技术标签:

【中文标题】从 mongoDB 和 Nodejs 获取数据:toArray 不是函数错误 [重复]【英文标题】:Get data from mongoDB and Nodejs: toArray is not a function error [duplicate] 【发布时间】: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' 上检查了吗? 【参考方案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,那么你可以在你的回调函数中转换它

【讨论】:

以上是关于从 mongoDB 和 Nodejs 获取数据:toArray 不是函数错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 mongoDB 和 Nodejs 获取数据:toArray 不是函数错误 [重复]

从nodejs中mongodb的两个不同集合中获取数据

从nodejs中mongodb的两个不同集合中获取数据

使用Angularjs和nodejs进行Mongodb CRUD操作-如果数据已经存在,如何从数据库中获取消息?

Nodejs,猫鼬没有从 mongodb 获取数据 [重复]

使用 nodejs 和 chartjs 从 mongodb 插入和获取值