有没有办法将mongo集合转换为json格式?在shell上或使用java驱动程序。我正在寻找性能最佳的那个。
答案 0 :(得分:144)
Mongo包含一个可以转储集合的mongoexport实用程序(see docs)。该实用程序使用本机libmongoclient,可能是最快的方法。
mongoexport -d <database> -c <collection_name>
也很有帮助:
-o
:将输出写入文件,否则使用标准输出(docs)
--jsonArray
:生成一个有效的json文档,而不是每行一个json对象(docs)
--pretty
:输出格式化的json(docs)
答案 1 :(得分:96)
使用mongoexport / mongoimport转储/恢复集合:
导出JSON文件:
mongoexport --db <database-name> --collection <collection-name> --out output.json
导入JSON文件:
mongoimport --db <database-name> --collection <collection-name> --file input.json
警告
mongoimport
和mongoexport
不能可靠地保留所有丰富的BSON数据类型,因为JSON只能表示BSON支持的类型的子集。因此,使用这些工具导出或导入的数据可能会失去一定程度的保真度。
BSON旨在快速编码和解码。例如, 整数存储为32(或64)位整数,因此它们不需要 被解析为文本。对于小型,这比JSON使用更多空间 整数,但解析速度要快得多。
除紧凑性外,BSON还增加了其他数据类型 在JSON中不可用,特别是BinData和Date数据类型。
答案 2 :(得分:4)
这是我的命令供参考:
mongoexport --db AppDB --collection files --pretty --out output.json
在Windows 7(MongoDB 3.4)上,必须将cmd移动到mongod.exe
和mongo.exe
文件所在的位置=&gt;
C:\MongoDB\Server\3.4\bin
否则说它不会重新mongoexport
命令就行不通。
答案 3 :(得分:3)
来自Mongo文档:
mongoexport实用程序获取集合并导出为JSON或CSV。您可以为查询指定过滤器,或者输出要输出的字段列表
答案 4 :(得分:0)
如果要转储所有集合,请运行以下命令:
mongodump -d {DB_NAME} -o /tmp
它会将json
和bson
扩展中的所有馆藏数据生成到/tmp/{DB_NAME}
目录