mongo update 对数组的操作(增,删,改)

本文详细介绍了MongoDB中数组操作的多种方法,包括更新、添加、删除数组元素,以及排序和限制数组大小等高级功能。通过具体示例,读者可以学习如何使用$push、$pull、$addToSet等操作符来高效管理文档中的数组数据。

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

$ 单个更新数组中元素 bengbu_meituan 更改为text_meituan

(

{“name": "刘昌颜", "city_spelling_list": "bengbu_meituan"}, 

{"$set": {"city_spelling_list.$": "text_meituan"}}

)

 

$pull单个删除数组中元素

(

{"name": "刘昌颜"}, 

        {"$pull": {"platform_list": "elem"}}

 

$pop 删除数组中以第一个元素   删除数组中最后一个元素

({_id:1}, {$pop:{ids:-1}})

({_id:1}, {$pop:{ids:1}})

 

$addToSet 向文档数组中添加多个元素

(

{_id:1}, 

{$addToSet: tags: 标签}

)

注: 向tags数组中添加元素,如果元素存在则过滤(去重效果)

 

$addToSet 与 $each 向文档数组中添加多个值, 

注: 如果a1存在值添加a4 有去重效果 

({"name": "刘昌颜"}, {"$addToSet": {"platform_list": {"$each": ["a1", "a4"]}}})

 

注:   1. 如果更新的文档中缺少更新字段,则创建具有指定值作为其元素的数组字段,

        2.如果更新字段不是数组,则更新失败,

        3.如果要添加的值是数组,则将整个数组作为单个元素追加 ,[1, 2,3 [4, 5, 6]]

 

$push $each 向数组中添加多个值  覆盖式   不去重

({"name": "刘昌颜"}, {"$push": {"platform_list": {"$each": ["a1", "a2", "a3"]}}})

 

$position 与 $push 向数组指定位置添加元素  按index

(

{_id: 1, },

{$push: {platform_list:{$each:[value, value],$position:2}}}

)

 

# 有增加 就有删除

 

$ pull 批量删除数组中元素 $in

{"name": "刘昌颜"}, {"$pull": {"platform_list": {"$in": ["a1", "a9", "a4"]}}}

 

$pullAll 批量删除数组中元素 

(

{"name": "刘昌颜"}, 

{"$pullAll": {"platform_list": ["a1", "a3"]}}

)

 

$slice $push 限制数组中大小 按index      只保留最后3个

(

{_id:1},

{$push: {platform_list: {$each:[1, 3, 5], $slice: -3}}}

)

 

$sort $push 从新排序数组     1正序 -1 倒序

(

{_id:1},

{$push:{platform_list: {$each:[1,11, 99], $sort: 1}}}

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值