This Django management command just dumps data from a given MongoDB collection into a JSON file.
To get it working, just create a MONGODB_NAME
variable in settings, holding the name of your Mongo database. This can be edited to fit more your needs. The snippet requires Pymongo, since it uses its bson
module and the MongoClient
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | from django.core.management.base import BaseCommand, CommandError
from django.conf import settings
from optparse import make_option
from bson.json_util import dumps
from pymongo import MongoClient
class Command(BaseCommand):
option_list = BaseCommand.option_list + (
make_option('--filename', '-f',
dest='filename',
help='Sets the name of the dumped data file.'),
)
help = "Dumps data (in JSON) from the MongoDB database.\n\n" \
"Usage: manage.py mongo_dump MODEL"
def handle(self, *args, **options):
if not args:
raise CommandError('Please specify a model in Mongo database to '
'dump its existent data.')
filename = options.get('filename')
connection = MongoClient()
db = connection[settings.MONGODB_NAME]
collection = db[args[0]]
if not filename:
filename = args[0] + '.json'
with open(filename, 'w') as f:
for doc in collection.find():
f.write(dumps(doc) + '\n')
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 3 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 4 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 8 months ago
Comments
Please login first before commenting.