📜  如何导出 MongoDB 中的所有集合? - Javascript(1)

📅  最后修改于: 2023-12-03 15:09:05.642000             🧑  作者: Mango

如何导出 MongoDB 中的所有集合?

在开发 MongoDB 应用程序时,需要频繁地备份和导出数据,以便在需要时进行恢复或传输到其他系统。本文将介绍如何导出 MongoDB 中的所有集合。

步骤一:连接 MongoDB

首先,需要使用 MongoDB 驱动程序连接到 MongoDB 数据库。以下是使用 Node.js 驱动程序连接到本地 MongoDB 实例的示例代码:

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/';

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log('Connected to MongoDB!');
  // 此处需执行导出操作
  db.close();
});
步骤二:获取所有集合

接下来,需要获取 MongoDB 中的所有集合。以下是使用 Node.js 驱动程序获取集合列表的示例代码:

db.listCollections().toArray(function(err, collections) {
  if (err) throw err;
  console.log('Collections:', collections);
});
步骤三:导出每个集合

最后,需要循环遍历所有集合,并将其导出为 JSON 文件。以下是使用 Node.js 驱动程序导出集合的示例代码:

const fs = require('fs');

collections.forEach(function(collection) {
  const stream = db.collection(collection.name).find().stream();
  const filename = `${collection.name}.json`;
  const writeStream = fs.createWriteStream(filename);

  stream.on('data', function(document) {
    writeStream.write(JSON.stringify(document));
  });

  stream.on('end', function() {
    console.log(`${filename} exported successfully!`);
  });
});
完整代码

下面是完整的 Node.js 程序,它将连接到 MongoDB,获取所有集合,导出每个集合并关闭连接:

const MongoClient = require('mongodb').MongoClient;
const fs = require('fs');

const url = 'mongodb://localhost:27017/';

MongoClient.connect(url, function(err, db) {
  if (err) throw err;

  db.listCollections().toArray(function(err, collections) {
    if (err) throw err;

    collections.forEach(function(collection) {
      const stream = db.collection(collection.name).find().stream();
      const filename = `${collection.name}.json`;
      const writeStream = fs.createWriteStream(filename);

      stream.on('data', function(document) {
        writeStream.write(JSON.stringify(document));
      });

      stream.on('end', function() {
        console.log(`${filename} exported successfully!`);
      });
    });

    db.close();
  });
});

结论

使用上述代码,您可以轻松地导出 MongoDB 中的所有集合,并将其保存为 JSON 文件。这种方法适用于备份数据、迁移数据或与其他系统共享数据。