Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 对节点mongodb本机语法感到困惑_Node.js_Mongodb_Node Mongodb Native - Fatal编程技术网

Node.js 对节点mongodb本机语法感到困惑

Node.js 对节点mongodb本机语法感到困惑,node.js,mongodb,node-mongodb-native,Node.js,Mongodb,Node Mongodb Native,我刚刚进入node和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){

我刚刚进入node和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"});
但是,代码无法工作,说明用户为空。(我确实有一个代码,它在其中插入条目)无论如何,在试图弄清楚发生了什么的时候,我遇到了文档,其中它使用了一个同步模式来查找,而不是使用回调来检索游标。代码是这样的:

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和返回光标的回调。我真的很困惑。教程过时了吗?这个代码有什么问题吗?

如果
用户
,那么很可能是
错误
指示了问题所在。将
if(err)
路径添加到代码中,以便在设置时记录
err

find
可以以您描述的两种方式工作。回调参数是可选的,如果不提供,可以使用返回的游标。请参阅文档: