Mongo DB - 以JSON扩展模式导出

时间:2015-08-18 18:05:15

标签: mongodb

我想知道是否有任何命令或工具可以在JSON扩展模式下导出mongo集合,而不是默认模式下的严格模式。

欢迎任何建议。

谢谢!

1 个答案:

答案 0 :(得分:1)

strict mode exportmongoexport 支持的mongoimport扩展JSON:

  

BSON类型的严格模式表示符合JSON RFC。任何JSON解析器都可以将这些严格模式表示解析为键/值对;但是,只有MongoDB的内部JSON解析器也能识别格式传达的类型信息。

mongo shell也有类似JSON的宽松表示,但允许使用无效JSON的语法。例如,shell语法允许不带引号的字符串值,它们表示扩展数据类型的辅助函数(例如ISODate())。

扩展JSON:

{
   "_id":{
       "$oid":"55d39fac2ba0663a655bee54"
   },
   "day":{
        "$date":"2015-08-18T21:12:12.945Z"
   }
}

mongo shell语法(类JSON):

{
  "_id": ObjectId("55d39fac2ba0663a655bee54"),
  "day": ISODate("2015-08-18T21:12:12.945Z")
}

mongo shell

导出

如果您真的想用mongo shell语法导出集合,可以将输出通过管道传输到文件中。

只有mongo shell才能理解这种格式,如果您尝试打印大型集合,则可能会遇到限制:

mongo server:port/dbname --eval "printjson(db.collection.find().toArray())"

用于将集合导入/导出为JSON的标准命令行工具为mongoimportmongoexport。这些通常不适合数据库备份 - 请参阅MongoDB手册以获取支持的Backup and Recovery tutorials

相关问题