我创建了一个python脚本,可以自动将PDF转换为txt文件。我希望能够在MongoDB中存储和查询这些文件。我是否需要将.txt文件转换为JSON / BSON?我应该使用像PyMongo这样的程序吗?
我只是不确定这样一个项目的步骤是什么,更不用说有助于此的工具了。
我看过这篇文章:How can one add text files in Mongodb?,这让我觉得我需要将文件转换为JSON文件,并可能整合GridFS?
答案 0 :(得分:3)
如果您使用的是驱动程序,则无需对JSON / BSON进行编码。如果您正在使用MongoDB shell,则在粘贴内容时需要担心它。
您可能想要使用Python MongoDB driver:
from pymongo import MongoClient
client = MongoClient()
db = client.test_database # use a database called "test_database"
collection = db.files # and inside that DB, a collection called "files"
f = open('test_file_name.txt') # open a file
text = f.read() # read the entire contents, should be UTF-8 text
# build a document to be inserted
text_file_doc = {"file_name": "test_file_name.txt", "contents" : text }
# insert the contents into the "file" collection
collection.insert(text_file_doc)
(未经测试的代码)
如果您确定文件名是唯一的,则可以设置文档的_id
属性并将其检索为:
text_file_doc = collection.find_one({"_id": "test_file_name.txt"})
或者,您可以确保上面显示的file_name
属性已编入索引并执行:
text_file_doc = collection.find_one({"file_name": "test_file_name.txt"})
您的另一个选择是使用GridFS,尽管通常不建议将其用于小文件。
Python和GridFS有一个启动器here。
答案 1 :(得分:0)
是的,您必须将文件转换为JSON。有一种简单的方法可以做到这一点:使用{"text": "your text"}
之类的东西。稍后可以轻松扩展/更新此类记录。
当然,您需要在文本中避开"
次出现。我想您使用您喜欢的语言的JSON库和/或MongoDB库来进行所有格式化。