本章介绍Java MongoDB如何更新文档。
1.前置教程
2.更新多行数据
UpdateResult ur = mongoTemplate.updateMulti(
query(where("accounts.accountType").is("tizi365.com")), // 设置查询条件
new Update().inc("accounts.$.balance", 50.00), // 通过Update对象设置更新内容
Account.class // 设置需要更新的集合对象,通过对象名计算出集合名字
说明:
Spring mongodb包通过Update对象封装了mongodb的的所有更新操作符。
3.Update对象详解
// $set操作符 - 更新字段值
// { $set: { "course.title": "tizi365.com", "type": 5 } }
new Update().set("course.title", "tizi365.com").set("type", 5)
// $inc操作符,累加字段值
// { $inc: { "accounts.$.balance": 50.00 } }
new Update().inc("accounts.$.balance", 50.00)
// $push数组操作符 - 将数据添加到数组中
// { $push : { "category" : { "$each" : [ "spring" , "data" ] } } }
new Update().push("category").each("spring", "data")
// $addToSet操作符 - 将数据添加到集合中,重复元素则忽略
// { $addToSet : { "values" : { "$each" : [ "spring" , "data" , "mongodb" ] } } }
new Update().addToSet("values").each("spring", "data", "mongodb");