Sprong boot - Data操作 MongDBTemplate之数组操作

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的操作的话,欢迎在下方留言评论,我看到后就把所有操作更新上去。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值