Skip to content

Instantly share code, notes, and snippets.

@thbkrkr
Created April 16, 2015 21:17
Show Gist options
  • Save thbkrkr/7617edf1f540a04f482a to your computer and use it in GitHub Desktop.
Save thbkrkr/7617edf1f540a04f482a to your computer and use it in GitHub Desktop.
Export all MongoDB collections to JSON
#!/bin/bash
DB=$1
COLLECTIONS=$(mongo localhost:27017/$DB --quiet --eval "db.getCollectionNames()" | sed 's/,/ /g')
for collection in $COLLECTIONS; do
echo "Exporting $DB/$collection ..."
mongoexport -d newtickettoolDB -c $collection -o $collection.json
done
@Bramzor
Copy link

Bramzor commented Mar 9, 2017

Small fix on this line: mongoexport -d newtickettoolDB -c $collection -o $collection.json needs to be mongoexport -d $DB -c $collection -o $collection.json

Thanks for the code btw :)

@hudsonmendes
Copy link

hudsonmendes commented Jun 9, 2017

I had to use the code bellow to get the names of the collection properly
mongo localhost:27017/$DB --quiet --eval "db.getCollectionNames()" | tr -d '\[\]\"[:space:]' | tr ',' ' '

@bobmayuze
Copy link

mongo localhost:27017/$DB --quiet --eval "db.getCollectionNames()"  | grep \" | tr -d '\[\]\"[:space:]' | tr ',' ' '  

I think this is a better solution, or you may get stuff like successfully connected to db as a collection

@pastukhov
Copy link

jq version

#!/bin/bash

DB=$1
COLLECTIONS=$(mongo localhost:27017/$DB --quiet --eval "db.getCollectionNames()" | jq '. | join(" ")')

for collection in $COLLECTIONS; do
    echo "Exporting $DB/$collection ..."
    mongoexport -d $DB -c $collection -o $collection.json
done

@iliakan
Copy link

iliakan commented Oct 2, 2018

For me, the last version failed due to first/last extra quotes " in the collection list.

Fixed:

#!/bin/bash

DB=$1
COLLECTIONS=$(mongo localhost:27017/$DB --quiet --eval "db.getCollectionNames()" | jq -r '. | join(" ")')

for collection in $COLLECTIONS; do
    echo "Exporting $DB/$collection ..."
    mongoexport -d $DB -c $collection -o $collection.json
done

@enioha
Copy link

enioha commented Oct 17, 2018

mongo localhost:27017/integradornfse --quiet --eval "db.getCollectionNames()"| sed 's/,/\n/g'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment