MongoDB:BSON 转 JSON

6
我正在使用node.js的原生mongoDB驱动程序。 我想从数据库中获取一些数据并将其作为JSON字符串通过HTTP发送。 是否有一种方法可以将BSON转换为JSON或直接从数据库检索数据作为JSON?
谢谢!

1
对不起?在驱动程序将其转换为JSON之前,您无法使用文档进行工作。collection.find({}).toArray(function(err, docs) { console.log(docs); //Display array of JSON objects }) - user1207456
1
BSON是MongoDB的本地格式。JSON是您应该作为本地对象格式接收的内容。 - jdi
你是在询问如何将JSON对象转换为字符串吗? - jdi
1
我认为大家的意思是,MongoDB驱动程序返回的是JSON而不是BSON。BSON只是用于存储文档的内部格式。不应该需要进行任何转换。 - Andrew T Finnell
好的,我的错。我仔细看了一下代码,我返回的是集合而不是“查找”查询的结果。 - johnny
7
MongoDB原生驱动程序返回的不是JSON,而是一个JS对象(或数组,取决于查询)。这很不同,因为该对象的并非所有值都能被序列化为JSON,并正确地反序列化(例如,ObjectID、Date将被转换为字符串,反序列化程序无法知道如何构造原始对象)。 - Louis Chatriot
1个回答

0
在Python中,您可以使用simplejson编码器将BSON转换为JSON,如下所示:
result = db.mycol.find({ ....})
json = simplejson.dumps(result)

它可以转换所有简单对象,但对于其他对象可能会有困难,例如日期时间将无法工作。为了解决这个问题,以下方法可能有效:将MongoDB对象序列化为JSON


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接