Mongoengine:为什么to_json返回$oid或$date键?
我在用Python和MongoDB的mongoengine库时,发现“to_json”这个函数的表现跟我预期的不太一样。
举个例子,我有一个叫“Comments”的文档,当我调用comments.to_json()时,返回的结果是:
{
"_id": {
"$oid": "53eb97a312f8035580b92241"
},
"created": {
"$date": 1407955862027
}
而我其实希望得到的是:
{
"_id":"53eb97a312f8035580b92241",
"created": 1407955862027
}
我真的需要解析所有的JSON数据才能得到我想要的结果吗?
1 个回答
2
JSON只支持一些简单的数据类型,所以它本身并不支持像ObjectId(对象ID)或者日期这样的类型。MongoDB使用的BSON是一种二进制的JSON超级类型,它支持更多的数据类型。
为了能够在BSON和JSON之间转换时不丢失信息,MongoDB提供了一种扩展的JSON格式,这就是MongoEngine使用的格式。