mongodb nosql数据库updates 操作符集锦

本文详细介绍了MongoDB中用于更新文档的各种操作符,包括$set、$setOnInsert、$unset、$inc、$mul、$rename、$min、$max、$bit、$addtoset、$pop、$pull和$push等。通过实例展示了如何使用这些操作符进行文档字段的设置、删除、增加、乘法、重命名、更新最小值、最大值、位操作以及数组操作。同时,还讲解了如何组合多个更新运算符进行复杂更新操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$set

$set update运算符将字段的值设置为指定的值。
set(“quantity”, 11)

$setOnInsert

setOnInsert操作符会将指定的值赋值给指定的字段,如果要更新的文档存在那么setOnInsert操作符会将指定的值赋值给指定的字段,如果要更新的文档存在那么setOnInsertsetOnInsert操作符不做任何处理
setOnInsert(“defaultQuantity”, 10)

$unset

$unset update运算符删除具有给定名称的字段。
unset(“quantity”)

$inc

$inc update运算符将数值字段的值递增指定的值。
inc(“quantity”, 5)

$mul

$mul update运算符将数值字段的值乘以指定的值。
mul(“price”, 1.2)

$rename

$rename update运算符重命名字段
rename(“qty”, “quantity”)

$min

如果指定的值小于字段的当前值,$min update运算符会将字段值更新为指定值。
min(“lowScore”, 150)

$max

如果指定的值大于该字段的当前值,$max update运算符会将该字段的值更新为指定值。
max(“highScore”, 900)

$bit

$bit update运算符对字段的整数值执行位更新。
bitwiseAnd(“mask”, 10)
bitwiseOr(“mask”, 10)
bitwiseXor(“mask”, 10)

$addtoset

addtosetupdate运算符向数组添加值,除非该值已经存在,在这种情况下addtoset update运算符向数组添加值,除非该值已经存在,在这种情况下addtosetupdateaddtoset对该数组不做任何操作。
addToSet(“letters”, “a”)
addEachToSet(“letters”, Arrays.asList(“a”, “b”, “c”))

$pop

$pop update运算符删除数组的第一个或最后一个元素。
popFirst(“scores”)
popLast(“scores”)
$pullall
$pullall update运算符从现有数组中删除指定值的所有实例。
pullAll(“scores”, Arrays.asList(0, 5))

$pull

$pull update运算符从现有数组中删除与指定查询匹配的值或值的所有实例。
pull(“scores”, 0)
pullByFilter(Filters.gte(“votes”, 6))

$push

$push update运算符向数组追加指定的值。
push(“scores”, 89)
pushEach(“scores”, 89, 90, 92)
pushEach(“scores”, new PushOptions().position(0), 89, 90, 92) //每个值89、90和92推送到scores数组的开头
pushEach(“scores”, new PushOptions().sort(-1).slice(5), 89, 90, 92) //将值89、90和92中的每一个都推送到scores数组,按降序对数组进行排序,并删除数组中除前5个元素以外的所有元素
pushEach(“quizzes”, new PushOptions().sortDocument(Sorts.descending(“score”)).slice(-3),
Document(“week” -> 5, “score” -> 8),
Document(“week” -> 6, “score” -> 7),
Document(“week” -> 7, “score” -> 6)) //将每个文档wk:5、score:8、wk:6、score:7和wk:7、score:6推送到测验数组,按分数降序排列数组,并删除数组中除最后3个元素以外的所有元素

=====================================================

组合多个更新运算符:combine

combine(set(“quantity”, 11),
set(“total”, 30.40),
pushEach(“prices”, 4.99, 5.99, 10.99)) //将“quantity”字段的值设置为11,将“total”字段的值设置为30.40,并将每个值4.99、5.99和10.99推送到“prices”字段的数组值:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值