EJSON.deserialize()方法将扩展 JSON 对象转换为 BSON 对象。
语法
该方法的语法如下:
EJSON.deserialize( object, [ options ] )
方法字段
该方法采用以下字段:
字段 | 类型 | 必要性 | 说明 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| EJSON 对象 | 必需 | 要转换的 EJSON 对象。 例如,文档数组。 | ||||||
| 字符串 | Optional | 修改输出对象类型。 唯一的选项是
|
行为
您可以从交互式EJSON.deserialize() mongosh会话或使用 从系统命令行运行--eval 。
要从交互式mongosh会话运行EJSON.deserialize() ,请使用:
EJSON.deserialize( object, [ options ] )
要从系统命令行运行EJSON.deserialize() ,请使用:
mongosh --eval "EJSON.deserialize( 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") } ] )
以下部分展示如何创建示例文件,然后使用EJSON.deserialize()示例导入该文件。
创建示例文件
以下示例以大量形式检索sales文档,并将结果保存到计算机文件系统上名为salesDeserialize.json的文件中:
let salesCollection = EJSON.stringify( db.sales.find().toArray() ) fs.writeFileSync( 'salesDeserialize.json', salesCollection )
从命令行导入示例文件
要导入salesDeserialize.json文件并创建名为salesFromDeserializeFile的新collection,请退出mongosh ,然后从命令行运行此示例:
Note: The example is formatted to fit the page. mongosh --quiet --eval "db.salesFromDeserializeFile.insertMany( \ EJSON.deserialize( JSON.parse ( \ fs.readFileSync( 'salesDeserialize.json', 'utf8' ) ) ) )"
在示例中:
fs.readFileSync()读取salesDeserialize.json文件并将内容解释为utf8Unicode 字符串。JSON.parse()将从文件读取的字符串转换为 JSON。EJSON.deserialize()输出 JSON。db.salesFromDeserializeFile.insertMany()使用EJSON.deserialize()返回的 JSON 创建并填充salesFromDeserializeFile集合。
注意
您可以在上一个示例中使用EJSON.parse() ,这是一种更简单的方法。 JSON.parse()和EJSON.deserialize()提供了更高的灵活性。