MongoDB:BSON 到 JSON

Posted

技术标签:

【中文标题】MongoDB:BSON 到 JSON【英文标题】:MongoDB: BSON to JSON 【发布时间】:2012-05-13 10:35:33 【问题描述】:

我正在为 node.js 使用本机 mongoDB 驱动程序。 我想从数据库中获取一些数据并通过 HTTP 将其作为 JSON 字符串发送。 有没有办法将 BSON 转换为 JSON 或直接从数据库中以 JSON 格式检索数据?

谢谢!

【问题讨论】:

请问?在驱动程序将其转换为 JSON 之前,您无法使用这些文档。 collection.find().toArray(function(err, docs) console.log(docs); //Display array of JSON objects ) BSON 是原生的 mongodb 格式。 JSON 是您应该接收的原生对象格式。 您是在问如何将 JSON 对象转换为字符串? 我想每个人都在说,MongoDB 驱动程序返回 JSON 而不是 BSON。 BSON 只是用于存储文档的内部格式。应该不需要任何转换。 原生 MongoDB 驱动程序不返回 JSON,而是返回一个 JS 对象(或数组,取决于查询)。这是完全不同的,因为并非该对象的所有值都可以序列化为 JSON 并正确反序列化(例如,ObjectID、Date 将被转换为 String,而反序列化器无法知道如何构造原始对象) 【参考方案1】:

在python中你可以使用simplejson编码器将bson转成json,如下:

result = db.mycol.find( ....)
json = simplejson.dumps(result)

它将转换所有简单的对象,但会遇到其他问题,例如 datetime 将不起作用。要处理此问题,以下方法可能有效:MongoDB Object Serialized as JSON

【讨论】:

以上是关于MongoDB:BSON 到 JSON的主要内容,如果未能解决你的问题,请参考以下文章