sublime text 无法直接打开几十兆 bson 文件,因其非二进制编辑器,需先用官方 bsondump 工具转为扩展 json,再通过关闭插件、使用内置缩进、折叠、正则搜索与多行编辑高效处理大 json 文件。

Sublime Text 无法直接打开几十兆 BSON 文件
它不是为二进制数据设计的编辑器,bson 是二进制序列化格式,Sublime Text 默认会把它当乱码或空白文件处理,强行拖入可能卡死、崩溃,或只显示一长串不可读的 \x00\x01\x02... 字节。这不是插件没装对的问题,是根本性限制。
必须先用 bsondump 转成可读 JSON
bsondump 是 MongoDB 官方工具链里的命令行工具,专用于解码 BSON 文件。它不加载全量到内存,流式解析,几十兆也能秒出结果。
- 确保已安装
mongodump/mongo-tools(macOS 可用brew install mongodb-community@7.0;Windows 下从 MongoDB Download Center 下载完整包并把bin/加入 PATH) - 运行:
bsondump --outFile output.json input.bson,生成标准 JSON(非紧凑格式,带换行缩进) - 如果原始 BSON 含 ObjectId、Date、BinData 等类型,
bsondump默认会转成类似{"$oid": "..."}的扩展 JSON 格式,Sublime Text 才能正确识别结构
在 Sublime Text 中高效处理大 JSON 文件
即使转成 JSON,几十兆文本仍可能让 Sublime Text 响应变慢。关键不是“怎么格式化”,而是“怎么避免卡死+保留可用结构”:
- 关闭所有无关插件,尤其是 JSONLint、Pretty JSON 这类实时校验/格式化插件——它们会在你滚动时反复解析全文,直接拖慢到无响应
- 用内置命令
Ctrl+Shift+P→ 输入JSON: Reindent(需提前启用 Package Control 的JavaScript语法包),比第三方插件更轻量 - 别用“全选 + 缩进”操作,改用折叠功能:点击行号左侧的
▶折叠数组/对象,快速跳过不关心的字段层级 - 搜索时用正则模式:
"field_name":\s*([^}]+)可快速提取某字段值;^ {4}"_id":.*$匹配缩进 4 空格下的_id行,方便批量删减
过滤与结构化呈现靠的是分块 + 正则 + 多行选择
Sublime Text 不是数据库,没有 WHERE 或 JOIN,但它的多行编辑和正则替换足够支撑常见清洗任务:
- 删除特定字段:用
Ctrl+H打开替换面板,勾选Regular Expression,查找"useless_field":\s*[^,}]*[,\n],替换为空,注意结尾逗号和换行要一并吞掉,否则 JSON 会损坏 - 提取所有文档的某个嵌套字段:比如
"user.email",先用Find All匹配"email":\s*"([^"]+)",再Ctrl+Shift+L拆成多光标,按方向键删掉引号和冒号前内容,留下纯邮箱列表 - 导出为 CSV?别硬写正则拼接。复制筛选后的 JSON 数组 → 粘贴到 VS Code 或在线 JSON-to-CSV 工具(如 konklone.io/json),Sublime Text 在这个环节只负责“切出干净子集”
真正容易被忽略的点是:BSON 里的 $date、$oid 等扩展语法,在 JSON 模式下不会高亮,得手动切换语法为 JSON (sublime) 或安装 JSON Improved 插件;否则你根本看不出哪些字段是日期、哪些是 ObjectId,过滤就容易误删。











