Login

MongoDB data dump

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

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

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

Comments

Please login first before commenting.