我想知道是否有任何命令或工具可以在JSON扩展模式下导出mongo集合,而不是默认模式下的严格模式。
欢迎任何建议。
谢谢!
答案 0 :(得分:1)
strict mode export和mongoexport
支持的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的标准命令行工具为mongoimport
和mongoexport
。这些通常不适合数据库备份 - 请参阅MongoDB手册以获取支持的Backup and Recovery tutorials。