0

这是我的代码

mongoose.connection.on('open', function(err, doc){
    console.log("connection established");

    //**Array Method**
    mongoose.connection.db.collection('simple', function(err, doc){
        if(err){
            console.log("ERROR", err);
        }else{
            doc.find().toArray(function(err, arr){
                console.log("Arr Method", arr);
            })
        }
    })

    //**Cursor Method**
    mongoose.connection.db.collection('simple', function(err, doc){
        if(err){
            console.log("ERROR", err);
        }else{
            var cur = doc.find();
            cur.each(function(err, doc){
                console.log("Cursor item", doc);
            })
        }
    })
})

数组方法的输出

Arr Method 

    [ { _id: 5209340204db66186f93043d, name: 'SUR' },
      { _id: 5209341f04db66186f93043e, name: 'SAT' },
      { _id: 520935c004db66186f93043f, name: 'THI' },
      { _id: 52093b3504db66186f930440, name: 'popo' },
      { _id: 52093cef04db66186f930441, name: 'rorb' } ]

游标方法的输出

Cursor item { _id: 5209340204db66186f93043d, name: 'SUR' }
Cursor item { _id: 5209341f04db66186f93043e, name: 'SAT' }
Cursor item { _id: 520935c004db66186f93043f, name: 'THI' }
Cursor item { _id: 52093b3504db66186f930440, name: 'popo' }
Cursor item { _id: 52093cef04db66186f930441, name: 'rorb' }
Cursor item null

我有两个问题。

  1. 为什么游标方法中有一个额外的 log(" Cursor item null")。
  2. 如果我将我的代码(Array method and Cursor method)移出连接打开回调,则不会打印任何内容。为什么 ?
4

1 回答 1

0
  1. 这实际上是关于驱动程序的问题,而不是猫鼬,因为您正在下降到驱动程序以创建 Cursor 对象。
  2. 这是记录在案的司机行为
  3. 没有打印任何内容,因为您在建立与数据库的连接之前正在执行它们。
于 2013-08-13T23:06:22.853 回答