如何让MongoDB查询直接返回标准JSON格式结果?
让MongoDB返回标准JSON的解决方案
以下几种方法都能让MongoDB查询返回规范的标准JSON,且支持递归处理深度嵌套的文档:
1. 启动mongosh时指定--json参数
直接以JSON输出模式启动客户端,所有查询结果都会自动转换为标准JSON,BSON特殊类型(如ISODate)会被转为对应的JSON格式:
mongosh --json
进入会话后执行查询:
db.mycollection.find({"something": true})
返回结果示例:
{ "someDate": "2022-10-24T17:21:44.980Z", "something": true, "hello": "world" }
2. 在会话中使用toJSON()方法
如果已经处于mongosh会话内,可通过toJSON()函数递归转换查询结果为标准JSON:
- 逐文档输出:
db.mycollection.find({"something": true}).forEach(doc => print(toJSON(doc)))
- 输出整个结果数组的JSON:
print(toJSON(db.mycollection.find({"something": true}).toArray()))
toJSON()会自动处理所有嵌套层级的BSON类型,无需额外配置。
3. 使用mongoexport工具批量导出
若需要批量导出数据为标准JSON文件,mongoexport是最优选择,它默认输出标准JSON并递归处理嵌套结构:
mongoexport --db your_database_name --collection mycollection --query '{"something": true}' --out result.json
导出的文件中所有BSON特殊类型都会被转换为符合JSON规范的格式。
内容的提问来源于stack exchange,提问作者Johan
相关产品推荐
相关产品推荐

