我刚刚进入节点和mongodb并遇到了第一个障碍。
我正在浏览一个代码如下所示的教程:
var db = new mongo.Db("database", new mongo.Server(host, port, {}));
db.open(function(error){
db.collection("user", function(err, collection){
collection.find({"id":"1"}, function(error, cursor){
cursor.toArray(function(err, users){
if(users.length == 0){
console.log("no such user");
} else if {
console.log("user found: ", users[0]);
}
});
});
});
然而,代码无效,说用户为空。 (我确实有一个插入条目的代码)无论如何,在试图弄清楚发生了什么时,我遇到了文档,它使用了查找的同步模式而不是使用回调来检索光标。代码如下:
var cursor = collection.find({"id":"1"});
事实上,我在文档中的任何地方都找不到使用带有返回游标的回调的 find 的用法。我真的很困惑。教程是否过时了?这段代码出了什么问题?
答案 0 :(得分:0)
如果users
为null
,则err
可能表示问题所在。在代码中添加if (err)
路径,以便在设置时记录err
。
find
可以以您描述的两种方式工作。回调参数是可选的,如果您不提供它,则可以使用返回的游标。请参阅文档:link。