📅  最后修改于: 2023-12-03 15:09:05.642000             🧑  作者: Mango
在开发 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 文件。这种方法适用于备份数据、迁移数据或与其他系统共享数据。