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

EJSON.deserialize()

在本页

  • 语法
  • 方法字段
  • 行为
  • 示例
  • 创建示例文件
  • 从命令行导入示例文件
  • 了解更多信息

EJSON.deserialize()方法将扩展JSON对象转换为BSON对象。

该方法具有以下语法

EJSON.deserialize( object, [ options ] )

该方法接受以下字段

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

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

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

您可以从交互式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() 提供了更多的灵活性。

  • EJSON 反序列化方法

  • EJSON 文档

返回

EJSON