EJSON.serialize()
EJSON.serialize()
方法将 BSON 对象转换为扩展 JSON 表示形式,作为 JavaScript 对象。
MongoDB使用BSON存储数据。 许多外部数据转换应用程序都使用JSON。 您可以使用EJSON.serialize()
将BSON转换为JSON ,并保存输出以供这些外部应用程序使用。
语法
该方法的语法如下:
EJSON.serialize( object, [ options ] )
方法字段
该方法采用以下字段:
字段 | 类型 | 必要性 | 说明 | ||||||
---|---|---|---|---|---|---|---|---|---|
| BSON 对象 | 必需 | 要转换的BSON对象。 示例,文档大量。 | ||||||
| 字符串 | Optional | 修改输出对象类型。 唯一的选项是
|
行为
您可以从交互式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") } ] )
交互式mongo shell EJSON.serialize() 示例
以下示例以数组形式检索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' } } ]
命令行mongo shell EJSON.serialize() 示例
要将集合数据保存到文件,可以使用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
文件与外部数据转换应用程序一起使用。