MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

stocker le texte intégral du fichier txt dans mongodb

Vous n'avez pas besoin de l'encoder en JSON/BSON si vous utilisez un pilote. Si vous utilisez le shell MongoDB, vous devrez vous en préoccuper lorsque vous collerez le contenu.

Vous voudrez probablement utiliser le Pilote 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)

(code non testé)

Si vous vous êtes assuré que les noms de fichiers sont uniques, vous pouvez définir le _id propriété du document et récupérez-la comme :

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

Ou, vous pouvez vous assurer que le file_name la propriété comme indiqué ci-dessus est indexée et faites :

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

Votre autre option consiste à utiliser GridFS, bien que ce ne soit souvent pas recommandé pour les petits fichiers.

Il y a un démarreur ici pour Python et GridFS.