MongoDB Export To JSON: 3 Easy Methods

on Data Integration, Tutorials • June 17th, 2020 • Write for Hevo

Are you finding it difficult to perform a successful MongoDB export to JSON format? Do you feel exhausted after writing endless queries & still not succeeding? Don’t worry, we’ve got you covered! This article will answer all your queries & help you find a truly efficient solution. Follow our easy step-by-step guide to help you master the skill to efficiently export MongoDB data to JSON format using Mongo’s rich environment, various other tools & programming language drivers.

Table of Contents

Introduction To MongoDB

Mongodb Logo.

It is a high-performance document-oriented database that is powered by a NoSQL structure. It makes use of collections (tables) each having multiple documents (records) & allows the user to store data in a non-relational format.

MongoDB stores its data as objects which are commonly identified as documents. These documents are stored in collections, analogous to how tables work in relational databases. MongoDB is known for its scalability, ease of use, reliability & no compulsion for using a fixed schema among all stored documents, giving them the ability to have varying fields (columns). 

Introduction To JSON Files

JSON file Logo.

It stands for JavaScript Object Notation, which allows storing data in an easy to access and human friendly way. JSON makes use of a key-value pair notation using strings & can be easily exported/imported using various tools. The main function of JSON is to transmit data between a web application and a server. It is usually used as an alternative to XML.

JSON can store various types of data such as arrays, objects, strings, etc. Binary JSON (BJSON), a type of JSON is considered to rich in data types.

Hevo Data: Smart Alternative To Export Data

Hevo Data, a No-code Data Pipeline can help you export data in a jiff with absolutely no trouble. It is a fully automated solution that requires minimal supervision, allowing you to export MongoDB data in your desired file format without compromising performance and in real-time as well. Its strong integration with 100+ sources gives you the flexibility to bring in data of all different kinds in a way that’s as smooth as possible. 

Some key features of Hevo Data:

  • Secure Data Export: Hevo has a fault-tolerant architecture that ensures that the data is handled in a secure, consistent manner with zero data loss. Its two-factor authentication & end to end encryption ensure that there are no security issues.
  • Simplicity: Using Hevo is easy and intuitive, ensuring that your data is exported in just a few clicks. 
  • Real-Time Data Export: Hevo with its strong integration with 100+ Sources, allows you to transfer data quickly & efficiently.
  • Schema Management: Hevo takes away the tedious task of schema management & automatically detects schema of incoming data and maps it to the destination schema.
  • Live Support: The Hevo team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.
  • Completely Managed Platform: Hevo is fully managed. You need not invest time and effort to maintain or monitor the infrastructure involved in executing codes.

Get started with Hevo today! Sign up for a 14-day free trial!

Prerequisites

  • Working knowledge of MongoDB.
  • A general idea of the JSON file structure.
  • A general idea about Python and its libraries.
  • MongoDB installed at the host workstation.

3 Easy Methods: MongoDB Export To JSON

Exporting documents from MongoDB in the JSON format can be done in various ways:

Method 1: Using mongoexport

Mongoexport is a command-line utility that is used to export data from a MongoDB instance in a JSON file format. Mongoexport runs directly on the MongoDB command line and not on the Mongo Shell & it can be used in the following way:

mongoexport --collection=<coll> [options]

Mongoexport is part of MongoDB’s tools package, which is available through the MongoDB Download Center. The tools package must be installed well in advance so that the command-line can be accessed.

The user must specify the collection they want to export along with an output file name. 

Mongoexport helps to export MongoDB data in JSON format in two simple steps:

Step 1: Establishing A Connection To A MongoDB Instance

A MongoDB instance running on port “27017”, doesn’t necessarily require a host or port to be specified.

Example query: Here director represents the database from which movies collection is being exported in JSON format.

mongoexport --collection=movies --db=director --out=movies.json

Options that are specified as a part of the query used to export MongoDB data in JSON format:

–host: It is an optional parameter that helps mention the remote server MongoDB instances.

–username & –passwords: These are the optional parameter used for authentication.

–db: Gives information about the database.

–collection: Gives the collection name.

a) Specifying the collection that you want to export, can be done in two ways:

--collection=<collection> or -c=<collection>

b) Specifying the output file that you want to export to, can similarly be done in two ways:

--out=<output_name> or -o=<output_name>

c) Specifying the database you will be exporting from is represented as: 

--db=<database_name> or -d=<database_name>

Step 2: Specifying Host And/Or Port Of The MongoDB Instance

The port and/or hostname can be specified in multiple ways:

  1. Using the –uri connection string

This method requires specifying the database as a part of the string.

mongoexport --uri="mongodb://mongodb0.example.com:27017/conduct"  --collection=webinars  --out=webinars.json [additional options]

The –db command line option can’t be used directly with the –uri connection string.

2. Using –host option

The –host option allows using either of the following ways to specify the value:

<--host=<hostname><:port> or -h=<hostname><:port>

Example query:

mongoexport --host="mongodb0.example.com:27017" --collection=movies --db=director --out=movies.json [additional options]

3. Using –host & –port options

The –host & –port options allow using either of the following ways to specify the values:

<--host=<hostname><:port>, -h=<hostname><:port> 
--port=<port>

Example query:

mongoexport --host="mongodb0.example.com" --port=27017 --collection=movies--db=director--out=movies.json [additional options]

The output format of an exported document can vary with the version of JSON being used, therefore simply exporting MongoDB data isn’t enough, it’s important to understand how the output varies:

Output in extended JSON v2.0 (Relaxed Mode)

{"_id":1.0,"volume":2980000,"date":{"$date":"2019-08-05T16:18:29.559Z"}}

Output in extended JSON v2.0 (Canonical Mode)

To export MongoDB data in canonical mode, you need to use the parameter –jsonFormat=canonical in your query.

{"_id":{"$numberDouble":"1.0"},"volume":{"$numberLong":"2980000"},"date":{"$date":{"$numberLong":"1565363188675"}}}

For more information on the mongoexport syntax and its various operations, you can look into the mongoexport manual.

Method 2: Using The Pymongo Driver

Pymongo Driver for MongoDB Export to JSON.

The Pymongo driver is another way to export MongoDB data in the desired JSON format. Pymongo driver helps to interact with MongoDB using Python language.

It is available starting from MongoDB v2.6 and supports all versions up to v4.2.

This method involves the following steps:

Step 1: Installing Pymongo

The recommended way to install a Pymongo driver is through pip which usually gets installed along with the Python environment. You can use the following code:

C:Users/YourName/AppData/LocalPrograms/Python/Python36-32Scripts>python -m pip install pymongo

Once the installation is done, import the driver:

import pymongo

Once Pymongo is installed & imported, install the pandas library:

pip3 install pandas
import pandas

Step 2: Connecting With MongoClient

To export MongoDB data, it’s essential to connect & create a MongoClient on the running MongoDB instance:

from pymongo import MongoClient
Client_Mongo_new=MongoClient()

This code will connect to the default host and port, to give a specific host & port use the following code:

Client_Mongo_new=MongoClient(‘localhost’,27017)

Connect with the desired database & collection to export MongoDB data as follows:

db=Client_Mongo_new.database_name
c=db.collection_name // This is used to check whether the collection is there or not.

Step 3: Document Retrieval Using API Calls

In order to retrieve all documents, make use of the find() method, and make sure not to pass any arguments for now. The output thus obtained will be in the form of pymongo.cursor.cursor object.

Once the API call is made, make use of the list() method to receive all documents. 

cursor=c.find()
docs=list(cursor)// retrieves exported MongoDB data from database.

It’s always a good practice to restrict the amount of MongoDB data being exported to make the process more efficient:

docs=docs[:25]// Retrieves only 25 documents initially.

Step 4: Using pandas.series() method

Export MongoDB data in a restricted amount as mentioned above and convert it to pandas.series.Series format as follows:

Series_obj=pandas.Series({“one”:”index”})
Series_obj.index=[“one”]
Print(“index”:series_obj.index) 

Step 5: Creating A Pandas Dataframe Object

Begin by creating an empty object as follows:

docus=pandas.Dataframe(colums=[])

Step 6: Enumeration & Appending The Series Object

To iterate through the documents efficiently, make use of the enumerate function in a python for-loop as follows:

for n,doc in enumerate(docs):
    doc[“_id”]=str(doc[“_id”])
    doc_id=doc[“_id”]
series_obj=pandas.Series(doc,name=doc_id)// Series Object Creation.
docs=docs.append(series_obj)

Step 7: Using .to_json() Function

The inherent methods of Pandas Series and DataFrame objects allow streamlined exporting of different file formats including to_html(), to_json(), and to_csv().

json_export = docs.to_json() # return JSON data
print ("nJSON data:", json_export)

These 7 steps can be used to successfully export MongoDB data in JSON file format with the help of Pymongo driver.

For further information on Pymongo, you can look into its documentation manual.

Method 3: Using Tools Such as Studio 3T & Robo 3T

Studio 3T Logo.

Using Studio 3T

Studio 3T provides the Export Wizard facility, which helps export MongoDB data, query results, and even collections in various forms like JSON. The process begins by establishing a connection with the desired MongoDB instance and then working on the collection and its documents using the Studio 3T wizard. 

Using Studio 3T, you can export MongoDB data in 2 steps:

Step 1: Using The Wizard Toolbar

Wizard Toolbar.

Click on the Export option and then use a right-click to select any database followed by a collection that you want to export.

Exporting Collections.

With Studio 3T, you can export data & simultaneously query in applications like Visual Query Builder, IntelliShell, SQL, etc.

The Export configuration allows to dynamically change the source of export i.e database, collection, etc.

Export Source

The progress of an export process can be tracked using the operations window which is usually found in the bottom left corner of the wizard.

Reveal in Folder Option.

Step 2: Exporting Documents In JSON

Begin by launching the wizard, and then select the source from where you want to export the document.

Selecting Current Query.

Select the final export format as JSON.

JSON Export Format.

This will open a new tab called export overview along with a default tab by the name of Export unit#1-JSON.

Query Overview.

There are five parts of the Export unit#1-JSON tab:

  • Source: Make sure the source is entered correctly.
  • Format Option: Choose JSON-mongo shell/ JSON-mongoexport.
  • Target: Choose between clipboard/file & make sure the file path is defined.
  • Others: Choose whether to export with commas between documents or export as a document array.
  • Output Preview: Displays the final JSON document.

Click on execute to export MongoDB data in JSON format using Studio3T.

Using Robo 3T

Robo 3T Logo.

Robo 3T (formerly Robomongo) doesn’t directly provide a feature to export MongoDB data in JSON format however, it can be implemented by tweaking the export query to provide data in a format similar to JSON.

This can be achieved in two ways:

1. Using tojson Function

var cursor = db.getCollection('foo').find({}, {});
while(cursor.hasNext()) {
print(tojson(cursor.next())) }

This code produces a JSON like array of documents.

2. Write A Query

db.getCollection('collection').find({}).toArray()

Once the query has executed, use a right-click, and select copy JSON option to export MongoDB data.

Copying JSON.

Conclusion

This article offers a step-by-step solution to export MongoDB data in the JSON format taking into consideration multiple tools and techniques like Studio 3T. It provides a brief introduction of these methods and their operations to help the users understand them better and use them to export MongoDB data in a JSON file format in the most efficient way possible. It also introduces an alternative method that is Hevo, a No-code Data Pipeline to export MongoDB documents in JSON file format. Hevo’s automated solution helps perform these operations with no hassle.

Want to take Hevo for a spin? Sign up here for a 14-day free trial! and experience the true power of Hevo’s feature-rich suite.

We would love to hear from you about your experience with these methods! Reach out to us in the comments section below.

No-code Data Pipeline Solution For MongoDB