json - 强制 mongodb 输出严格的 JSON

标签 json mongodb shell bson

我想在其他说 JSON 的程序中使用一些 MongoDB 命令的原始输出。当我在 mongo shell 中运行命令时,它们代表 Extended JSON , “shell 模式”中的字段,具有特殊字段,如 NumberLongDateTimestamp。我在文档中看到对“严格模式”的引用,但我看不到为 shell 开启它的方法,或者在 中运行像 db.serverStatus() 这样的命令的方法do 输出严格的 JSON,例如 mongodump。如何强制 Mongo 输出符合标准的 JSON?

several other questions关于这个话题,但我觉得他们的任何答案都不是特别令人满意。

最佳答案

MongoDB shell 使用 Javascript,所以答案很简单:使用 JSON.stringify() .如果你的命令是 db.serverStatus() ,那么你可以简单地这样做:

JSON.stringify(db.serverStatus())

这不会输出每个字段的正确“严格模式”表示( { "floatApprox": <number> } 而不是 { "$numberLong": "<number>" } ),但如果您关心的是获得符合标准的 JSON,这将完成把戏。

关于json - 强制 mongodb 输出严格的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32097209/

相关文章:

linux - vim ctags,两个相同的条目,不会直接跳转到定义

Java JSON Controller 到 Scala?

java - 将 JSONObject 转换为 Java 对象

javascript - 如何重用带有 promise 的 mongo 连接

mongodb - 在保留根字段的同时对子文档进行分组/计数

mongodb - 检查具有内部数组的文档数组的某些字段的重复项

c - 使用 execvp 声明范围错误

json - 如何从 JSON 填充 Chapel 类对象?

java - 使用 JSONArray 和 JSONObject 进行 Foreach

bash - 使用默认值读取 bash 中的变量