You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导出MongoDB的数据库创建脚本?

MongoDB类似SQL Server脚本化建库的实现方案

MongoDB属于NoSQL数据库,没有原生对应.sql格式的单文件导出选项,但可以通过两种方式实现和SQL Server script.sql完全等价的效果,其他用户拿到对应文件后一键即可复现完整数据库(含结构、索引、约束、可选业务数据)。


方案1:导出含数据的整库脚本(等价于SQL Server整库导出脚本)

这是最常用的方案,依赖MongoDB官方自带工具即可完成:

  • 导出操作:在源库环境执行mongodump命令,执行后会在指定目录生成整库的结构+数据文件,可直接打包发给其他用户
mongodump --db 你的源数据库名 --out 自定义导出目录路径
  • 导入操作:其他用户拿到导出文件后,执行mongorestore命令即可完整复现原库
mongorestore --db 目标数据库名 导出目录/对应库的文件夹路径

方案2:仅导出库结构脚本(不含数据,等价于SQL Server仅架构导出)

如果不需要导出业务数据,只需要同步库的集合、索引、校验规则等结构,可以通过Mongo Shell生成纯JS初始化脚本:

  • 导出操作:在源库环境打开Mongo Shell,切换到对应数据库后执行以下逻辑,把输出的内容保存为mongo_init.js文件即可
// 遍历所有集合导出创建语句和索引
db.getCollectionNames().forEach(coll => {
  const collOptions = db.getCollectionInfos({name: coll})[0].options;
  print(`db.createCollection("${coll}", ${JSON.stringify(collOptions)});`);
  // 导出当前集合所有索引
  db[coll].getIndexes().forEach(idx => {
    delete idx.v; // 移除版本号避免跨版本兼容问题
    print(`db.${coll}.createIndex(${JSON.stringify(idx.key)}, ${JSON.stringify(idx)});`);
  });
});
  • 导入操作:其他用户拿到mongo_init.js文件后,执行以下命令即可创建完全一致的库结构
mongosh 目标数据库名 < mongo_init.js

上述所有工具mongodump、mongorestore、mongosh都是MongoDB安装包默认附带的官方工具,不需要额外安装第三方组件。

内容的提问来源于stack exchange,提问作者Nat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:45:04