Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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 Mongojs回调未返回_Node.js_Mongodb_Mongojs - Fatal编程技术网

Node.js Mongojs回调未返回

Node.js Mongojs回调未返回,node.js,mongodb,mongojs,Node.js,Mongodb,Mongojs,我正在使用mongojs更新mongodb集合中的数据。程序逐行读取一个文件,并对每一行在mongodb数据库中进行更新。更新工作正常,但控件不返回 var fs = require('fs') var reader = require('buffered-reader'); var dataReader = reader.DataReader; var mongojs = require('mongojs') var db = mongojs.connect('testdb'); var c

我正在使用mongojs更新mongodb集合中的数据。程序逐行读取一个文件,并对每一行在mongodb数据库中进行更新。更新工作正常,但控件不返回

var fs = require('fs')
var reader = require('buffered-reader');
var dataReader = reader.DataReader;

var mongojs = require('mongojs')
var db = mongojs.connect('testdb');
var col = db.collection('testCollection');

var file = "sample.txt";

var loadData = function (line) {
    record = line.split(",");
    rec_key = record[1];
    col.update(
        {rec_key: rec_key},
        {rec_key: rec_key,
         data: 5678},
        {upsert:true}, function(err){});
}

new dataReader (file, { encoding: "utf8" })
    .on ("error", function(error){
            console.log ("error: " + error);
        })
    .on ("line", loadData )
    .on ("end", function (end){
            console.log("EOF");
        }).read();
从节点运行此命令后,控件不会返回。该程序正在无限期运行。如果我在dataReader中注释loadData函数,它工作正常,程序在遍历所有行后结束


在遍历所有行并在mongodb中进行更新后,如何使程序结束?

您需要在完成mongodb连接后关闭它,否则它将保持程序打开

   col.update(
    {rec_key: rec_key},
    {rec_key: rec_key,
     data: 5678},
    {upsert:true}, function(err){
        if(err)
          //return false
        else
          //return true
    });
比如:

.on ("end", function (end){
        console.log("EOF");
        db.close();
    }

您需要在完成MongoDB连接后关闭它,否则它将保持程序打开

比如:

.on ("end", function (end){
        console.log("EOF");
        db.close();
    }

我建议您尝试使用node.js本机驱动程序,因为您可以使用最新版本。

我建议您尝试使用node.js本机驱动程序,因为您可以使用最新版本。

不起作用。我仍然面临同样的问题。程序运行不确定不起作用。我仍然面临同样的问题。程序无限期运行