文档菜单
文档首页
/
MongoDB Shell
/ /

EJSON.serialize()

本页内容

  • 语法
  • 方法字段
  • 行为
  • 示例
  • 交互式Mongo Shell EJSON.serialize()示例
  • 命令行Mongo Shell EJSON.serialize()示例
  • 了解更多

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

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

该方法具有以下语法

EJSON.serialize( object, [ options ] )

该方法接受以下字段

字段
类型
必要性
描述
object
BSON对象
必需
要转换的BSON对象。例如,文档数组。
options
字符串
可选

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

布尔值
描述
true
返回JSON对象类型。默认是 true
false
返回BSON对象类型。

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

要从交互式 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 文件。

  • EJSON序列化方法

  • EJSON 文档

返回

parse()