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

如何将Mongo Shell中MongoDB查询的执行结果导出到本地文件

MongoDB Shell查询结果导出到本地文件实现方法

方法1:系统终端直接执行查询导出(推荐)

不需要提前进入Mongo Shell,直接在操作系统终端执行命令即可完成导出,效率最高:

  • 如果你使用的是Mongo 5.0+默认的新版Mongo Shell(mongosh),执行以下命令(将示例中的test替换为你实际使用的数据库名):
mongosh test --eval "JSON.stringify(db.persons.find({}).toArray(), null, 2)" --quiet > /Users/david/my_files/persons.js

参数说明:

  • --eval:指定要在Mongo Shell中执行的JS代码
  • --quiet:屏蔽Mongo Shell的欢迎信息、连接日志等冗余输出
  • > 路径:将命令的标准输出重定向写入指定文件
  • 如果你使用的是旧版Mongo Shell(mongo命令),替换命令开头的mongosh为mongo即可:
mongo test --eval "printjson(db.persons.find({}).toArray())" --quiet > /Users/david/my_files/persons.js

注意:find()默认返回游标对象,直接导出只会输出前20条结果和游标元信息,调用.toArray()可以一次性导出所有匹配的文档内容。


方法2:已进入Mongo Shell时的导出方案

如果你已经打开了Mongo Shell会话不想退出,可以根据你使用的Shell版本选择对应方法:

  • 新版mongosh内置了文件写入API,直接在Shell中执行以下代码即可:
// 先获取所有查询结果
const queryResult = db.persons.find({}).toArray();
// 写入目标文件
fs.writeFile('/Users/david/my_files/persons.js', JSON.stringify(queryResult, null, 2));
  • 旧版mongo没有内置文件写入能力,可以提前开启终端的会话记录功能:
    1. 进入Mongo Shell前,在终端执行script /Users/david/my_files/persons.js开启日志记录
    2. 进入Mongo Shell执行db.persons.find({})拿到查询结果
    3. 按Ctrl+D退出日志记录会话,所有终端输出都会写入目标文件,手动删除文件头尾的冗余会话信息即可。

可选优化

  • 如果需要导出的文件是标准JSON格式,建议将文件后缀改为.json,更符合通用规范
  • 如果连接的Mongo实例需要身份认证,在命令中添加-u 用户名 -p 密码 --authenticationDatabase admin参数即可正常导出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:54:03