【发布时间】:2019-11-26 16:57:23
【问题描述】:
通常我们可以在 shell 中使用命令 mongoimport 来上传 JSON 文件和 Large 文件到 mongodb,我们可以在集合中准备好我们的模式而不需要担心最大大小(16MB),因为 mongo 会处理批量大小等(这已经过测试和工作),数据将成行,一切都很好。
这里的主要问题是如何通过使用 pymongo 和 GridFS 对 python 做同样的事情。当我使用 GridFS 时,它正在上传到不同类型的集合 (*.files),并且未像第一种方法那样定义模式。文件以字节为单位,集合名称为 *.files
我想知道如何执行 python 方法并像使用 mongoimport 命令一样获得结果
我的代码是:
fs = gridfs.GridFS(db, collection='test_collection')
with open(path_to_big_json_file, 'rb') as dictionary:
fs.put(dictionary, filename='test_filename')
结果如下:
我的目标是立即在普通集合中准备好架构,而不是在这样的 GridFS 集合中:
我在 pymongo 中尝试过批量插入,但由于文件太大,它没有工作, 我相信我们会有办法,不必使用 GridFS,但让我们将其保留在 python 中
谢谢!
【问题讨论】:
-
db.append(file.read_contents('path/to/file'), is_large_file=True, use_multi_cores=True)?? -
我没有找到db的append函数,其他的也不存在
标签: python json mongodb pymongo gridfs