二进制Javascript对象表示法(BSON)是一种二进制编码的JSON文档的序列化。JSON是容易理解的,因为它是人类可读的,但与BSON相比,它支持更少的数据类型。BSON一直延伸到添加一些可选non-JSON-native数据类型,日期和二进制数据。
MongoDB BSON格式存储数据通过网络在内部和。它也用于mongodump生成的输出文件的格式。阅读BSON文档的内容,你需要将它转换成一个人类可读的格式(如JSON。
通过这篇文章,你将学习如何BSON文档转换为JSON。我将解释的方法包括使用bsondump mongoexport, Python, Bash。
BSON与bsondump JSON
的bsondump转换BSON文件转换成人类可读的格式,包括JSON。例如,bsondump生成的输出文件是有用的阅读吗mongodump。bsondump工具的一部分MongoDB数据库工具包中。
运行bsondump从系统命令行:
|
1
|
bsondump
- - -输出文件=集合
. json
集合
.bson
|
它将创建一个JSON文件(集合. json从现有的BSON文档()集合.bson),类似于之后创建的备份你的数据库。
BSON与mongoexport JSON
mongoexport是一个命令行工具,产生一个JSON或CSV导出的数据存储在MongoDB实例。mongoexport工具的一部分MongoDB数据库工具包中。
运行mongoexport从命令行:
|
1
|
mongoexport
- - -集合=员工
- - -db=公司
- - -出=员工
. json
- - -漂亮的
|
连接到本地MongoDB实例运行在端口27017上,你不需要指定主机和端口。如果另有需要,检查连接到MongoDB实例部分文档的更多信息。
的- - -漂亮的选项将漂亮的JSON文件的内容格式。
BSON与Python JSON
如果你是一个Python开发人员,有两种方法用于读取BSON文档并将它转换为JSON。
- 使用bson模块从PyMongo
|
1
2
3
4
5
6
7
8
|
从
bson
进口
decode_all
从
bson
。
json_util
进口
转储
与
开放
(
”。/ data.bson '
,
rb的
)
作为
f
:
数据
=
decode_all
(
f
。
读
(
)
)
与
开放
(
”。/ data.json”
,
“w”
)
作为
输出文件
:
输出文件
。
写
(
转储
(
数据
,
缩进=2
)
)
|
这是脚本做什么:
-
- 导入decode_all和转储方法从bson模块。
- 打开文件读取和解码数据的内容。
- 创建一个JSON文件,编写JSON文档创建BSON数据的文件。
mongodump生成的脚本使用BSON文件。在运行脚本之前,您必须安装PyMongo:皮普安装pymongo。
- 连接到数据库和查询数据与PyMongo, MongoDB的Python驱动程序。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
从
pymongo
进口
MongoClient
从
bson
。
json_util
进口
转储
uri
=
“mongodb: / /用户名:(电子邮件保护):端口/”
客户端
=
MongoClient
(
uri
)
db
=
客户端
。
公司
员工
=
db
。
员工
光标
=
员工
。
找到
(
)
list_cur
=
列表
(
光标
)
json_data
=
转储
(
list_cur
,
缩进
=
2
)
与
开放
(
“data.json”
,
' w '
)
作为
文件
:
文件
。
写
(
json_data
)
|
这是脚本做什么:
-
- 导入方法MongoClient从pymongo图书馆,转储方法从bson模块。
- 建立到数据库的连接。
- 设置数据库(例如,公司)和集合(例如,员工)你想查询。
- 检索文档的集合找到()方法和结果创建一个列表。如果你不传递任何参数,这种方法,结果将类似选择*在MySQL。
- 通过调用创建一个JSON对象转储方法。的缩进=2参数会告诉转储()漂亮的格式的JSON对象。
- 写的内容json_data变量的数据. json文件。
在运行脚本之前,您必须安装PyMongo:皮普安装pymongo。
BSON与Bash JSON
我问的AIphind.com告诉我如何BSON文件转换为JSON,其中一个解决方案,它向我展示了创建一个Bash脚本BSON文件的目录。
|
1
2
3
4
5
6
7
8
|
# ! / bin / bash
声明
- - - - - -一个
bson_files
bson_files=(
美元
(
ls
- - - - - -d
美元
松材线虫病/ *.bson
)
)
为
文件
在
" $ {bson_files [@]}”
;
做
bsondump
美元
文件
- - -输出文件=美元
文件
. json
完成
|
脚本列出所有BSON文件在当前目录并将结果保存在一个数组,然后遍历该数组,每个BSON文件转换为JSON文件。该脚本使用bsondump。
运行该脚本
- 向脚本添加执行权限:修改文件权限+xbson_to_json. sh。
- 在命令行中执行这个命令:
|
1
|
。/bson_to_json
. sh
|
结论
如果你想阅读BSON文档的内容,您可以使用bsondump和mongoexport BSON文档转换为一个人类可读的格式(如JSON。这些工具的一部分MongoDB数据库工具。
如果你是一名开发人员,您可以使用MongoDB司机你的编程语言的选择和查询数据分析数据库中的集合的内容。对于Python,您可以安装PyMongo,连接到数据库,查询和使用的数据bson模块将内容保存为一个JSON文档。
还有其他的解决方案,如网上其他编程语言提供的工具和方法,但是在这里你学到了一些方法。
雷竞技下载官网MongoDB Percona分布是一个免费的MongoDB数据库选择,给你一个解决方案,结合了最好的和最重要的开放源码社区的企业组件,设计和测试一起工作。





