cursor.toArray() 与本地托管数据库的未定义函数错误

Undefined function error for cursor.toArray() with locally hosted database

我遇到错误:

"TypeError: undefined is not a function" ..for toArray() 在下面的代码中。

// Require mongo db user model
var User = require("./models/user.js"); 

.
.
.

// list of members page ====================================================
// protected page
app.get("/members", isLoggedIn, function(req, res) {

    // get array list of usernames
    var pttCursor = User.find( { } , { firstname: 1, lastname: 1, _id: 0 } );
    var membersArray = pttCursor.toArray(function(err, docs){});

    res.render("members.ejs", {
        user : req.user, // get user out of session and pass to template
        members : membersArray
    });
});

我希望 /members 页面能够访问一组用户名。

编辑:我也试过 "cursor.map()" ..我得到了同样的错误

// get array list of usernames
var pttCursor = User.find( { } , { firstname: 1, lastname: 1, _id: 0 } );
var membersArray = pttCursor.map(function(pttDoc){
    return pttDoc.firstname + pttDoc.lastname;
});

.find 方法来自模型 returns Query 对象不是 Cursor.

要执行查询,请在 pttCursor 上使用 .exec() 方法。

此外,所有异步方法都应使用回调处理。

var pttCursor = User.find( { } , { firstname: 1, lastname: 1, _id: 0 } )
    .exec(function(err, membersArray){
        res.render("members.ejs", {
            user : req.user, // get user out of session and pass to template
            members : membersArray
        });
    });