node.js – 本机驱动程序从Mongoose模型中查找不返回Cursor

前端之家收集整理的这篇文章主要介绍了node.js – 本机驱动程序从Mongoose模型中查找不返回Cursor前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试通过Mongoose模型的集合属性执行本机MongoDB查找查询.我没有提供回调,所以我希望find返回一个Cursor对象,但它返回undefined.根据 Mongoose docs,正在使用的驱动程序可以通过YourModel.collection访问,如果我切换到纯粹使用本机驱动程序代码,find会返回一个Cursor,所以我无法弄清楚发生了什么.

这是一个重现问题的代码片段:

var db = mongoose.connect('localhost','test');
var userSchema = new Schema({
    username: String,emailAddress: String
});
var User = mongoose.model('user',userSchema);

var cursor = User.collection.find({});
// cursor will be set to undefined

我试图通过node-inspector进入代码,但它并没有让我这么做.知道我做错了什么吗?

解决方法

本机驱动程序方法都代理在nextTick上运行,因此不返回驱动程序的返回值.

相反,您可以传递回调,返回的第二个arg是游标.

User.collection.find({},function (err,cursor) {
  // 
});

好奇为什么你需要绕过猫鼬?

猜你在找的Node.js相关文章