Docs Menu
Docs Home
/
MongoDB Shell
/ /

EJSON.serialize()

On this page

  • Syntax
  • Method Fields
  • Behavior
  • Examples
  • Interactive Mongo Shell EJSON.serialize() Example
  • Command Line Mongo Shell EJSON.serialize() Example
  • Learn More

The EJSON.serialize() method converts BSON objects to Extended JSON representation as JavaScript objects.

MongoDB stores data using BSON. Many external data transformation applications use JSON. You can use EJSON.serialize() to convert BSON to JSON and save the output for those external applications.

The method has this syntax:

EJSON.serialize( object, [ options ] )

The method takes the following fields:

Field
Type
Necessity
Description
object
BSON object
Required
BSON object to convert. For example, an array of documents.
options
string
Optional

Modifies the output object types. The only option is { relaxed: <boolean> }.

Boolean Value
Description
true
Return JSON object types. Default is true.
false
Return BSON object types.

You can run EJSON.serialize() from an interactive mongosh session or from the system command line using --eval.

To run EJSON.serialize() from an interactive mongosh session, use:

EJSON.serialize( object, [ options ] )

To run EJSON.serialize() from the system command line, use:

mongosh --eval "EJSON.serialize( object, [ options ] )"

Create the sales collection for the examples:

db.sales.insertMany( [
{ custId: 345, purchaseDate: ISODate("2023-07-04"),
quantity: 4, cost: Decimal128("100.60") },
{ custId: 346, purchaseDate: ISODate("2023-07-12"),
quantity: 3, cost: Decimal128("175.45") },
{ custId: 486, purchaseDate: ISODate("2023-08-01"),
quantity: 9, cost: Decimal128("200.53") }
] )

The following example retrieves the sales documents as an array and stores the results in the salesCollection object:

salesCollection = EJSON.serialize( db.sales.find().toArray() )

Example output, which uses JSON:

[
{
_id: { '$oid': '6520519a0dbd2d208a5c7941' },
custId: 345,
purchaseDate: { '$date': '2023-07-04T00:00:00Z' },
quantity: 4,
cost: { '$numberDecimal': '100.60' }
},
{
_id: { '$oid': '6520519a0dbd2d208a5c7942' },
custId: 346,
purchaseDate: { '$date': '2023-07-12T00:00:00Z' },
quantity: 3,
cost: { '$numberDecimal': '175.45' }
},
{
_id: { '$oid': '6520519a0dbd2d208a5c7943' },
custId: 486,
purchaseDate: { '$date': '2023-08-01T00:00:00Z' },
quantity: 9,
cost: { '$numberDecimal': '200.53' }
}
]

To save collection data to a file, you can use EJSON.serialize() with the mongosh --eval method.

The following example retrieves the sales documents as an array and saves the results to a file named sales.json on the computer's file system:

# Note: The example is formatted to fit the page.
mongosh --quiet \
--eval "EJSON.serialize( db.sales.find().toArray() )" \
> sales.json

You could then use the sales.json file with an external data transformation application.

  • EJSON serialize method

  • EJSON documentation

Back

parse()