Login

MongoDB data load

Author:
jose_lpa
Posted:
January 3, 2013
Language:
Python
Version:
1.4
Score:
0 (after 0 ratings)

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 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
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[0])[0]
            items = db[name]
        else:
            items = db[collection]

        with open(args[0], 'r') as f:
            for line in f:
                items.insert(loads(line))

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 10 months, 3 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
  5. Help text hyperlinks by sa2812 1 year, 7 months ago

Comments

Please login first before commenting.