MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

armazenando texto completo do arquivo txt no mongodb


Você não precisa codificá-lo em JSON/BSON se estiver usando um driver. Se você estiver usando o shell do MongoDB, precisará se preocupar com isso ao colar o conteúdo.

Você provavelmente gostaria de usar o driver Python MongoDB :
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)

(Código não testado)

Se você se certificou de que os nomes dos arquivos são exclusivos, você pode definir o _id propriedade do documento e recuperá-lo como:
text_file_doc = collection.find_one({"_id": "test_file_name.txt"})

Ou você pode garantir que o file_name propriedade como mostrado acima é indexada e faça:
text_file_doc = collection.find_one({"file_name": "test_file_name.txt"})

Sua outra opção é usar o GridFS, embora muitas vezes não seja recomendado para arquivos pequenos.

Há um iniciador aqui para Python e GridFS.