Java Mongodb时间戳输出格式返回$“数字长”;对象,以毫秒为单位获取unix时间

Java Mongodb时间戳输出格式返回$“数字长”;对象,以毫秒为单位获取unix时间,java,json,mongodb,time,format,Java,Json,Mongodb,Time,Format,我开发了一个Spring应用程序,它将JSON保存在MongoDb中。 客户端可以通过输入开始和结束的时间间隔来搜索数据。 为了能够使用正则表达式(lte和gte)从数据库中获取数据,我将时间保存为UnixTimeStamp: "TimeStamp": { "StartTime": 1549371540000, "EndTime" : 1549371540000, "StartTimeZone":"

我开发了一个Spring应用程序,它将JSON保存在MongoDb中。 客户端可以通过输入开始和结束的时间间隔来搜索数据。 为了能够使用正则表达式(lte和gte)从数据库中获取数据,我将时间保存为UnixTimeStamp:

 "TimeStamp": {
                "StartTime": 1549371540000,
                "EndTime" : 1549371540000,
                "StartTimeZone":"Europe/Berlin",
                "EndTimeZone":"Europe/Berlin"
            }
过滤工作正常,但我得到以下结果:

"TimeStamp": {
                    "StartTimeZone": "Europe/Berlin",
                    "EndTimeZone": "Europe/Berlin",
                    "EndTime": {
                        "$numberLong": "1549371540000"
                    },
                    "StartTime": {
                        "$numberLong": "1549371540000"
                    }
                }
是否可以只获取键值对,而不是使用$numberLong键获取StartTime对象? 我还考虑用yyyy_-mm_-ddTHH:mm:SS+-Offset节省aso Iso格式的时间

但据我所知,我可以用正则表达式来过滤这种格式的时间。 处理时间是项目的重要组成部分,我想让舒尔以最佳实践的方式对待这一部分

编辑: 在我的代码中,我希望

for (Document doc : collection.find(query).projection(Projections.include(projectionList))) {
            //Save the query result as a List of JSON-Objects
            dataList.add(doc.toJson());
        }
将结果保存为JSON列表。我知道toJson方法已被弃用,但我无法找到将文档转换为JSON表示法的方法

是否可以只获取键值对,而不是使用$numberLong键获取StartTime对象

我知道toJson方法已被弃用

@medTech toJson方法未被弃用,请参考文档的官方文档。另外,请点击链接

是否可以只获取键值对,而不是使用$numberLong键获取StartTime对象

我知道toJson方法已被弃用


@medTech toJson方法未被弃用,请参考文档的官方文档。另外,请点击链接。

Nice。回答得好!美好的回答得好!
JsonWriterSettings settings = JsonWriterSettings.builder()
        .int64Converter((value, writer) -> writer.writeNumber(value.toString())).build();

document.toJson(settings); // The output would contain simple long value