This snippet loads data from JSON files into a MongoDB database.
The code is related with the other snippet MongoDB data dump.
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
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 37
from django.core.management.base import BaseCommand, CommandError from django.conf import settings from optparse import make_option from bson.json_util import loads from pymongo import MongoClient from os.path import splitext class Command(BaseCommand): option_list = BaseCommand.option_list + ( make_option('--collection', '-c', dest='collection', help='MongoDB collection where the data will be loaded.'), ) help = "Loads data from files into the MongoDB database.\n\n" \ "Usage: manage.py mongo_load FILE" def handle(self, *args, **options): if not args: raise CommandError('No data filename provided.') collection = options.get('collection') connection = MongoClient() db = connection[settings.MONGODB_NAME] if not collection: name = splitext(args) items = db[name] else: items = db[collection] with open(args, 'r') as f: for line in f: items.insert(loads(line))
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