MongDBTemplate 数组操作
记录操作数组的代码,因为我发现这部分是mongdbTemplate最头痛的一件事情,并且是在百度找的很模糊的一个,在此记录防止以后忘记。如果懂的了数组的更新操作,mongdbtemplate基本就没什么难度了。
首先如果我门要操作json里面嵌套了数组数据
我将这个数据代码写在下面
{
"_id" : "d3eb148055654dbc8f49fab79fa1cc3d1614403248880",
"listImage" : [
"http://xqny.sidaimi.com/9418c942a70-78bb-11eb-8d35-637dc461ac77.png",
"http://xqny.sidaimi.com/2168cc4fe70-78bb-11eb-b049-2f62453e7c34.png",
""
],
"content" : "xxx",
"commentDatas" : [
{
"userId" : 2,
"userName" : "张三1234",
"userImg" : "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3070449247,3406424445&fm=11&gp=0.jpg",
"replyCommentId" : 0,
"content" : "ewqewqewqewqe",
"praise" : 0,
"replyTime" : "2021-03-09 22:43:06",
"_class" : "com.sidaimi.xiaoliang.data.CommentData"
},
],
"type" : 1,
"userName" : "张三",
"headImg" : "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3070449247,3406424445&fm=11&gp=0.jpg",
"praiseNum" : 0,
"shareNum" : 0,
"browseNum" : 0,
"userId" : 0,
"releaseTime" : "2021-02-27 13:20:48",
"isBan" : false,
"_class" : "com.sidaimi.xiaoliang.data.FriendEssay"
}
现在我门需要操作数组里面的内容,这里我只写mongdbTemplate里面的操作
//这个查询非常关键,看清楚参数是带.的。查询的key是
[数组.userName] == “张三1234”
我门已经拿到了第一个json数据了,这个数据是整个json。
所以需要更新的代码
val query = Query.query(Criteria.where("commentDatas.userName").`is`("张三1234"))
//更新操作 最关键的就是$符号,会默认操作匹配你查询的数组里面的某个字段或者是某个实体类数据,如果你需要指定更新数组中第几个实体类的话只要把$改成数组下标即可,默认从0开始
val update = Update().inc("commentDatas.$.userId",1)
我觉得只要会更新数组里面的话基本mongdbtemplate就没有什么难度了,看了官方文档就会非常清楚了。
如果大家觉得我写的对你有帮助,请给我个赞。
还有大家如果还需要我更新所有的mongdbtemplate的操作的话,欢迎在下方留言评论,我看到后就把所有操作更新上去。