对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

EJSON.serialize()

EJSON.serialize()方法将BSON对象转换为扩展JSON表示形式作为JavaScript对象。

MongoDB使用BSON存储数据。 许多外部数据转换应用程序都使用JSON。 您可以使用EJSON.serialize()将BSON转换为JSON ,并保存输出以供这些外部应用程序使用。

该方法的语法如下:

EJSON.serialize( object, [ options ] )

该方法采用以下字段:

字段
类型
必要性
说明

object

BSON 对象

必需

要转换的BSON对象。 示例,文档大量。

options

字符串

Optional

修改输出对象类型。 唯一的选项是{ relaxed: <boolean> } 。

  • true: 返回 JSON Realm 对象类型。默认值为 true。

  • false: 返回 BSON Realm 对象类型。

您可以从交互式EJSON.serialize() mongosh会话或使用 从系统命令行运行--eval 。

要从交互式mongosh会话运行EJSON.serialize() ,请使用:

EJSON.serialize( object, [ options ] )

要从系统命令行运行EJSON.serialize() ,请使用:

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

为示例创建sales集合:

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") }] )

以下示例以数组形式检索sales文档,并将结果存储在salesCollection对象中:

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

使用 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' } }]

要将集合数据保存到文件,可以使用EJSON.serialize()和mongosh --eval方法。

以下示例以大量形式检索sales文档,并将结果保存到计算机文件系统上名为sales.json的文件中:

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

然后,您可以将sales.json文件与外部数据转换应用程序一起使用。