当我运行以下代码时,我收到错误消息"MongoError: server instance pool was destroyed".知道为什么或者如何解决这个问题吗?

var csv = require('./importer.js');
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var ObjectId = require('mongodb').ObjectID;
var url = 'mongodb://.....';


MongoClient.connect(url, function(err, db) {

    assert.equal(null, err);
    console.log("Connected correctly to server.");

    csv.foreach('data/airports.csv', function(airport){
        db.collection('airports').insertOne(airport, function(err, result) {
            if(err) {
                console.log(err)
            } else {
                console.log("Inserted: " + airport.ident);
            }
        });
    });

    db.close();
});

推荐答案

csv.foreachinsertOne调用(大概)都是异步的,所以在插入完成之前调用db.close().

你需要想出一种方法,在所有插入的回调都被调用之前等待拨打db.close().如何做到这一点取决于csv模块的工作方式,但使用类似于async module的东西可以帮助实现异步流控制.

Mongodb相关问答推荐

如何在MongoDB中正确解析佛年?

MongoDB通过查找具有多个数组的对象进行聚合

所有文档中嵌套 struct 中的条件匹配-mongodb

Next js、MongoDB和Prisma.包括不为相关字段工作

DB 中的引用对象在 GraphQL 查询中返回 null

MongoDB映射/减少多个集合?

用 Redis 查询?

你如何让 mongo 在远程服务器上运行?

如何在 $lookup Mongodb 的 LocalField 中将字符串转换为 objectId

mongodb-nodejs-driver,DeprecationWarning:collection.count 已弃用

如何使用 MongoDB 建模 likes投票系统

如何从 node.js 以编程方式执行 mongodump 命令?

单个模式数组中的多个模式引用 - mongoose

在 mongoDB 中展平嵌套的 JSON struct

docker 在不同的端口上运行 mongo 映像

将新值推送到 mongodb 内部数组 - mongodb/php

MongoError:failed to connect to server [localhost:27017] on first connect

为什么 Mongo 提示会使查询运行速度提高 10 倍?

PyMongo 创建具有 2 个或更多字段的唯一索引

哪个数据库适合我的应用程序 mysql 或 mongodb ?使用 Node.js 、 Backbone 、 Now.js