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(参见 )。