我在使用 spring-data-mongodb 在 spring boot 中处理数据库
数据库内容如下:
{
"_id" : "b8261207-3f95-40ca-bd05-e06ad451dff8",
"updateDate" : ISODate("2021-05-18T09:17:28.409Z"),
"isDelete" : false,
"name" : "test",
"receivedDate" : ISODate("2021-05-15T09:38:52Z"),
"deviceId" : "55118b35-43d3-4700-b8be-41daefb7f502",
"createDate" : ISODate("2021-05-18T09:17:28.409Z")
}
{
"_id" : "b8261207-3f95-40ca-bd05-e06ad451dff8",
"updateDate" : ISODate("2021-05-18T09:17:28.409Z"),
"isDelete" : false,
"test" : "test",
"createDate" : ISODate("2021-05-18T09:17:28.409Z")
}
然后我写的 repository 查询代码如下:
public List<HashMap> findAll() {
return mongoTemplate.findAll(HashMap.class, Constant.collectionName);
}
我有两个问题想问下:
- 因为数据库储存的 json 格式和内容是不固定的,所以我没有使用 entity 来处理实体类,而是使用 HashMap<String, Object>来处理的,目前在查询的时候使用 HashMap 进行查询结果储存
对于这个方案,大家有不同的建议嘛?使用 HashMap 有个问题是转不了 HashMap<String, Object>,这个转换只能遍历转换?
我也尝试使用 DBObject 替代 HashMap 进行使用,这两个那个比较好呢?或者有没有其他的方案
- 第二个问题是无论我使用到的是 HashMap 或者 DBObject,查询出来的结果都是下面的
[
{
"updateDate": 1621329448409,
"isDelete": false,
"name": "test",
"_id": "b8261207-3f95-40ca-bd05-e06ad451dff8",
"receivedDate": 1621071532000,
"deviceId": "55118b35-43d3-4700-b8be-41daefb7f502",
"createDate": 1621329448409
}
]
这个时间在 mongodb 中是 ISODate,但是查询出来由于没有使用具体的类型导致了没有自动转换格式,我希望查询出来的格式是"yyyy-MM-dd HH:mm:ss"的
这个可以有什么办法自动实现嘛?使用遍历手动转感觉不太友好
- 资料