ReactiveMongo 是否完全处理扩展 JSON 到 BSON 的转换?
Does ReactiveMongo handle extended JSON to BSON conversion fully?
我一直在尝试使用 reactivemongo 将一些文档插入到具有一些 BSON 类型的 mongodb 集合中。
我正在使用 Play JSON 库来解析和操作 extended JSON 中的一些文档,这是一个示例:
{
"_id" : {"$oid": "5f3403dc7e562db8e0aced6b"},
"some_datetime" : {
"$date" : {"$date": 1597841586927}
}
}
我正在使用 reactivemongo-play-json
,所以我必须导入以下内容,这样我的 JsObject
在传递到时会自动转换为响应式 mongo BSONDocument
collection.insert.one
import reactivemongo.play.json.compat._
import json2bson._
不幸的是,一旦我打开 mongo shell 并查看我刚刚插入的文档,结果如下:
{
"_id" : ObjectId("5f3403dc7e562db8e0aced6b"),
"some_datetime" : {
"$date" : NumberLong("1597244282116")
},
}
只有 _id
被理解为使用扩展 JSON 描述的 BSON 类型,我希望 some_datetime
字段类似于 ISODate()
,与我希望看到的 UUID()
类型值相同,而不是它们的扩展 JSON 描述,如下所示:
{'$binary': 'oKQrIfWuTI6JpPbPlYGYEQ==', '$type': '04'}
我如何确保这个扩展 JSON 实际上被转换为正确的 BSON 类型?
原来问题是我想扩展的JSON其实不是;我的日期时间格式应为:
{"$date": {"$numberLong": "1597841586927"}}
而不是
{"$date": 1597841586927}
我的数据源引入了错误的格式 - 默认情况下,kafka 连接 mongo 源连接器未将文档序列化为适当的扩展 JSON(参见 )。
我一直在尝试使用 reactivemongo 将一些文档插入到具有一些 BSON 类型的 mongodb 集合中。
我正在使用 Play JSON 库来解析和操作 extended JSON 中的一些文档,这是一个示例:
{
"_id" : {"$oid": "5f3403dc7e562db8e0aced6b"},
"some_datetime" : {
"$date" : {"$date": 1597841586927}
}
}
我正在使用 reactivemongo-play-json
,所以我必须导入以下内容,这样我的 JsObject
在传递到时会自动转换为响应式 mongo BSONDocument
collection.insert.one
import reactivemongo.play.json.compat._
import json2bson._
不幸的是,一旦我打开 mongo shell 并查看我刚刚插入的文档,结果如下:
{
"_id" : ObjectId("5f3403dc7e562db8e0aced6b"),
"some_datetime" : {
"$date" : NumberLong("1597244282116")
},
}
只有 _id
被理解为使用扩展 JSON 描述的 BSON 类型,我希望 some_datetime
字段类似于 ISODate()
,与我希望看到的 UUID()
类型值相同,而不是它们的扩展 JSON 描述,如下所示:
{'$binary': 'oKQrIfWuTI6JpPbPlYGYEQ==', '$type': '04'}
我如何确保这个扩展 JSON 实际上被转换为正确的 BSON 类型?
原来问题是我想扩展的JSON其实不是;我的日期时间格式应为:
{"$date": {"$numberLong": "1597841586927"}}
而不是
{"$date": 1597841586927}
我的数据源引入了错误的格式 - 默认情况下,kafka 连接 mongo 源连接器未将文档序列化为适当的扩展 JSON(参见