我已經創建了一個python腳本,可以自動將PDF轉換爲txt文件的工作流程。我希望能夠在MongoDB中存儲和查詢這些文件。我是否需要將.txt文件轉換爲JSON/BSON?我應該使用像PyMongo這樣的程序嗎?從txt文件存儲全文到mongodb
我只是不確定這樣的項目的步驟將不會讓工具,這將有助於這一點。
我看了這篇文章:How can one add text files in Mongodb?,這讓我覺得我需要將文件轉換爲JSON文件,並可能集成GridFS?
我已經創建了一個python腳本,可以自動將PDF轉換爲txt文件的工作流程。我希望能夠在MongoDB中存儲和查詢這些文件。我是否需要將.txt文件轉換爲JSON/BSON?我應該使用像PyMongo這樣的程序嗎?從txt文件存儲全文到mongodb
我只是不確定這樣的項目的步驟將不會讓工具,這將有助於這一點。
我看了這篇文章:How can one add text files in Mongodb?,這讓我覺得我需要將文件轉換爲JSON文件,並可能集成GridFS?
是的,您必須將您的文件轉換爲JSON。有一個微不足道的方法來做到這一點:使用像{"text": "your text"}
這樣的東西。以後很容易擴展/更新這些記錄。
當然,你需要在文本中跳出"
的出現。我想你使用你最喜歡的語言的JSON庫和/或MongoDB庫來完成所有的格式化。
關於如何轉換爲JSON的任何建議?我看過帖子提到明膠,但我不確定這是否是最好的工具。 – user2337225 2013-04-30 20:36:15
您不應該將文本文件轉換爲json。 – WiredPrairie 2013-04-30 20:36:34
是的,它看起來像我可以使用GridFS將整個文本文件作爲單個字段存儲到MongoDb中? – user2337225 2013-04-30 20:44:44
如果您使用驅動程序,則不需要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。
如果它們是小文件,則不需要GridFS。如果它們很大(> 10MB),那麼您希望更有可能使用GridFS。 – WiredPrairie 2013-04-30 20:35:10