spring到底是干啥的SpringBoot中使⽤MongoDB遇到的⼀些坑
SpringBoot中使⽤MongoDB遇到的⼀些坑
ObjectId
在将Mongo集合转换为JavaBean的时候发现Mongo集合中的主键是ObjectId类型的,然后Bean是拿String接收的发现没有⼀点⼉问题,后来有⼀个需求是拿Id去表⾥⾯查数据,这个Id也不是那个表⾥⾯的主键,但是类型也是ObjectId的,⽤String查的,怎么查都是空的,百思不得其解。后来再想既然是ObjectId类型的,看看java⾥⾯有没有这个类型,最后发现了还真有
注意是org.bson包下的不要导错包
ObjectId objectId = new ObjectId("123456");
这样⼦再去查mongo⾥⾯查就对了。
datetime
第⼆个就是mongo⾥⾯的时间类型,刚开始的时候总是感觉时间不对劲,取数据的时候在bean⾥⾯是⽤Date类型接收的,是java.util包下的,然后格式化转到前台也没啥问题,后来拿时间去mongo⾥⾯查数据的时候发现死活查询不到,结果上⽹查了下发现mongo⾥⾯的数据是UTC时间格式的,⽐咱们⽤的时间早了⼋个⼩时,⽤咱们的时间发过去到mongo⾥⾯肯定对应不上。所以写了个⼯具类然后将时间转换⼀下,发现问题解决了。
public static Date dateToMongoDate(String dateStr) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
simpleDateFormat.TimeZone("UTC"));
try {
return simpleDateFormat.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
结尾
mongo也是做项⽬⽤到,才开始⽤啥学啥,发现不少坑,⽽且感觉⽹上的资料不是太多,所以在此记录。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。