使用python查询bson文件

使用python查询bson文件,python,mongodb,bson,Python,Mongodb,Bson,我有一个bson文件:xyz.bson中充满了有用的数据,我想使用python查询/处理这些数据。有没有一个简单的例子/教程可以让我开始学习 我不明白 您可以使用mongorestore命令将数据导入mongoDB服务器,然后通过连接到该服务器进行查询 您可以使用mongorestore命令将数据导入mongoDB服务器,然后通过连接到该服务器进行查询 如果您希望将数据流化为磁盘上的平面JSON文件,而不是将其加载到mongod中,则可以使用以下小型python bson流媒体库: 如果您希望

我有一个bson文件:
xyz.bson
中充满了有用的数据,我想使用python查询/处理这些数据。有没有一个简单的例子/教程可以让我开始学习


我不明白

您可以使用
mongorestore
命令将数据导入mongoDB服务器,然后通过连接到该服务器进行查询

您可以使用
mongorestore
命令将数据导入mongoDB服务器,然后通过连接到该服务器进行查询

如果您希望将数据流化为磁盘上的平面JSON文件,而不是将其加载到mongod中,则可以使用以下小型python bson流媒体库:


如果您希望将数据作为磁盘上的平面JSON文件进行流式处理,而不是将其加载到mongod中,则可以使用以下小型python bson流式处理库:

您可以使用直接从bash查询.bson文件,也可以导入并使用Python中的库

举几个例子:

  • 查询.bson文件
    
    sonq-f'{“name”:“Stark”}source.bson
    

  • 将查询结果转换为换行分隔的.json文件
    
    sonq-f'{“name”:{“$ne”:“Stark”}'-o target.json source.bson
    

  • 在python中查询.bson文件
    
    从sonq.operation导入查询
    记录列表=列表(查询列表('source.bson',过滤器={“name”:{“$in”:[“Stark”]}}))
    

您可以使用直接从bash查询.bson文件,也可以导入并使用Python中的库

举几个例子:

  • 查询.bson文件
    
    sonq-f'{“name”:“Stark”}source.bson
    

  • 将查询结果转换为换行分隔的.json文件
    
    sonq-f'{“name”:{“$ne”:“Stark”}'-o target.json source.bson
    

  • 在python中查询.bson文件
    
    从sonq.operation导入查询
    记录列表=列表(查询列表('source.bson',过滤器={“name”:{“$in”:[“Stark”]}}))
    


文档中说它是用于json或csv的。它和bson一起工作吗?我的错。是的,必须是
mongorestore
。它读取.bson文件。看起来就是这个。我对用法有点困惑。我的桌面上有一个文件
property.bson
,我尝试了
>mongostore--db propertyInfo/desktop/property.bson
,得到了
SytaxError:意外标识符
。你能给我举几个好例子吗?命令是
mongorestore
,在你的例子中你写了
mongostre
,也许这就是原因。您可能还必须使用
-d
-c
选项指定要导入到的数据库名称和集合名称(
-d
相当于
--db
)。您的示例中还有一个绝对路径名,它可能是您想要的,也可能不是您想要的。它和bson一起工作吗?我的错。是的,必须是
mongorestore
。它读取.bson文件。看起来就是这个。我对用法有点困惑。我的桌面上有一个文件
property.bson
,我尝试了
>mongostore--db propertyInfo/desktop/property.bson
,得到了
SytaxError:意外标识符
。你能给我举几个好例子吗?命令是
mongorestore
,在你的例子中你写了
mongostre
,也许这就是原因。您可能还必须使用
-d
-c
选项指定要导入到的数据库名称和集合名称(
-d
相当于
--db
)。您的示例中还有一个绝对路径名,它可能是您想要的,也可能不是您想要的。这看起来是查询Exports数据的一种非常有趣的方法,它看起来是查询Exports数据的一种非常有趣的方法
from bsonstream import KeyValueBSONInput
from sys import argv
for file in argv[1:]:
    f = open(file, 'rb')
    stream = KeyValueBSONInput(fh=f,  fast_string_prematch="somthing") #remove fast string match if not needed
    for id, dict_data in stream:
        if id:
         ...process dict_data...