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

EJSON.parse()

本页内容

  • 语法
  • 命令字段
  • 行为
  • 示例
  • 使用EJSON.parse()格式化输入
  • 从命令行使用EJSON.parse()
  • 了解更多

EJSON.parse()方法将字符串值转换为JSON。

EJSON.parse() 方法接受一个字符串和一个可选的修饰符,该修饰符控制输出格式。

EJSON.parse(string, [options])

EJSON.parse() 方法接受以下字段

字段
类型
必要性
描述
value
string
必需
String EJSON.parse() 将转换为 JSON 键值对
options
string
可选

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

效果
true
尽可能返回原生 JavaScript 类型
false
优先返回 BSON 类型

您可以从交互式 mongosh 会话中调用 EJSON.parse() 或者在系统命令行中使用 --eval 来调用。

从交互式会话调用 EJSON.parse()

EJSON.parse(string)

从系统命令行调用 EJSON.parse()

mongosh --eval "EJSON.parse(string)"

要尝试这些示例,首先创建 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.parse() 接受一个字符串作为输入。在这个例子中,使用 EJSON.stringify() 方法将 sales 集合导出为字符串。

let salesCollection = EJSON.stringify( db.sales.find().toArray() )

使用 EJSON.parse() 格式化字符串,以便使用期望 JSON 对的类似方法db.collection.insertMany()

db.salesRestored.insertMany( EJSON.parse( salesCollection ) )
  • EJSON.parse()salesCollection 中的值格式化为 JSON 对

  • db.salesRestored.insertMany() 使用 JSON 对创建 salesRestored 集合。

要从外部来源(如文件或API调用)导入字符串数据,请使用 EJSON.parse()mongosh --eval 方法。

在此示例中,将 sales 集合保存为文件。

let salesCollection = EJSON.stringify( db.sales.find().toArray() )
fs.writeFileSync( 'sales.json', salesCollection )

此代码将在您的本地系统上创建一个名为 sales.json 的文件。要导入文件并创建新的集合,请退出 mongosh 并从命令行运行一个 --eval 操作。

# Note: This example is formatted to fit on the page.
mongosh --quiet \
--eval "db.salesFromFile.insertMany( \
EJSON.parse( fs.readFileSync( 'sales.json', 'utf8' ) ) )"
  • EJSON.parse() 接受一个字符串作为输入。此示例使用 fs.readFileSync()sale.json 文件作为字符串读取。

  • EJSON.parse() 将输入字符串格式化为JSON对。

  • db.salesFromFile.insertMany() 从JSON对创建 salesFromFile 集合。

返回

deserialize()