EJSON.deserialize()
的EJSON.deserialize()
方法将扩展JSON对象转换为BSON对象。
语法
该方法具有以下语法
EJSON.deserialize( object, [ options ] )
方法字段
该方法接受以下字段
字段 | 类型 | 必要性 | 描述 | ||||||
---|---|---|---|---|---|---|---|---|---|
object | EJSON对象 | 必需 | 要转换的EJSON对象。例如,文档数组。 | ||||||
options | 字符串 | 可选 | 修改输出对象类型。唯一选项是
|
行为
您可以从交互式mongosh
会话或从系统命令行使用--eval
运行EJSON.deserialize()
。
要从交互式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
的新集合,请退出 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
文件,并将内容解释为utf8
Unicode 字符串。JSON.parse()
将从文件读取的字符串转换为 JSON。EJSON.deserialize()
输出 JSON。db.salesFromDeserializeFile.insertMany()
使用由EJSON.deserialize()
返回的 JSON 创建并填充salesFromDeserializeFile
集合。
注意
在之前的例子中,您可以使用 EJSON.parse()
,这是一个更简单的方法。 JSON.parse()
和 EJSON.deserialize()
提供了更多的灵活性。