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
- Serializer factory with Django Rest Framework by julio 5 months, 3 weeks ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 6 months, 2 weeks ago
- Help text hyperlinks by sa2812 7 months, 1 week ago
- Stuff by NixonDash 9 months, 2 weeks ago
- Add custom fields to the built-in Group model by jmoppel 11 months, 3 weeks ago
Comments
Please login first before commenting.