Dump Mongo Collection into JSON format

JsonMongodbDump

Json Problem Overview


Is there any way to dump mongo collection into json format? Either on the shell or using java driver.I am looking for the one with best performance.

Json Solutions


Solution 1 - Json

Mongo includes a mongoexport utility (see docs) which can dump a collection. This utility uses the native libmongoclient and is likely the fastest method.

mongoexport -d <database> -c <collection_name>

Also helpful:

-o: write the output to file, otherwise standard output is used (docs)

--jsonArray: generates a valid json document, instead of one json object per line (docs)

--pretty: outputs formatted json (docs)

Solution 2 - Json

Use mongoexport/mongoimport to dump/restore a collection:

Export JSON File:

mongoexport --db <database-name> --collection <collection-name> --out output.json

Import JSON File:

mongoimport --db <database-name> --collection <collection-name> --file input.json

> WARNING mongoimport and mongoexport do not reliably preserve all rich BSON data types because JSON can only represent a subset of the types supported by BSON. As a result, data exported or imported with these tools may lose some measure of fidelity. >

Also, http://bsonspec.org/ > BSON is designed to be fast to encode and decode. For example, > integers are stored as 32 (or 64) bit integers, so they don't need to > be parsed to and from text. This uses more space than JSON for small > integers, but is much faster to parse. > > In addition to compactness, BSON adds additional data types > unavailable in JSON, notably the BinData and Date data types.

Solution 3 - Json

Here's mine command for reference:

mongoexport --db AppDB --collection files --pretty --out output.json

On Windows 7 (MongoDB 3.4), one has to move the cmd to the place where mongod.exe and mongo.exe file resides => C:\MongoDB\Server\3.4\bin else it won't work saying it does not recongnize mongoexport command.

Solution 4 - Json

From the Mongo documentation:

> The mongoexport utility takes a collection and exports to either JSON or CSV. You can specify a filter for the query, or a list of fields to output

Read more here: http://www.mongodb.org/display/DOCS/mongoexport

Solution 5 - Json

Here is a little node script that I write to dump all collections in a specific database to the specified output directory...

#!/usr/bin/env node
import { MongoClient } from 'mongodb';
import { spawn } from 'child_process';
import fs from 'fs';

const DB_URI = 'mongodb://0.0.0.0:27017';
const DB_NAME = 'database-name';
const OUTPUT_DIR = 'output-directory';
const client = new MongoClient(DB_URI);

async function run() {
  try {
    await client.connect();

    const db = client.db(DB_NAME);
    const collections = await db.collections();

    if (!fs.existsSync(OUTPUT_DIR)) {
      fs.mkdirSync(OUTPUT_DIR);
    }

    collections.forEach(async (c) => {
      const name = c.collectionName;
      await spawn('mongoexport', [
        '--db',
        DB_NAME,
        '--collection',
        name,
        '--jsonArray',
        '--pretty',
        `--out=./${OUTPUT_DIR}/${name}.json`,
      ]);
    });
  } finally {
    await client.close();
    console.log(`DB Data for ${DB_NAME} has been written to ./${OUTPUT_DIR}/`);
  }
}
run().catch(console.dir);

Solution 6 - Json

If you want to dump all collections, run this command:

mongodump -d {DB_NAME}   -o /tmp 

It will generate all collections data in json and bson extensions into /tmp/{DB_NAME} directory

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionParvin GasimzadeView Question on Stackoverflow
Solution 1 - JsonvrtxView Answer on Stackoverflow
Solution 2 - JsonPriyanshu ChauhanView Answer on Stackoverflow
Solution 3 - JsonnightfuryView Answer on Stackoverflow
Solution 4 - JsonNinjaView Answer on Stackoverflow
Solution 5 - JsonMike TView Answer on Stackoverflow
Solution 6 - JsonMoe FarView Answer on Stackoverflow