sql >> Base de Datos >  >> NoSQL >> MongoDB

almacenar texto completo del archivo txt en mongodb

No necesita codificarlo en JSON/BSON si está utilizando un controlador. Si está utilizando el shell de MongoDB, deberá preocuparse cuando pegue el contenido.

Es probable que desee utilizar el controlador de 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 no probado)

Si se aseguró de que los nombres de los archivos sean únicos, podría configurar el _id propiedad del documento y recuperarlo como:

text_file_doc = collection.find_one({"_id": "test_file_name.txt"})

O bien, puede asegurarse de que file_name la propiedad como se muestra arriba está indexada y hace:

text_file_doc = collection.find_one({"file_name": "test_file_name.txt"})

Su otra opción es usar GridFS, aunque a menudo no se recomienda para archivos pequeños.

Hay un iniciador aquí para Python y GridFS.