mycode:

//example:

db.person.insert([
{name:'zs', books:[{name:'html', price:66}, {name:'js', price:88}], tags:['html', 'js']},
{name:'ls', books:[{name:'vue', price:99}, {name:'node', price:199}], tags:['vue', 'node']}
])

//在name为zs的字段中的tags增添一个vue

db.person.updateOne({name:'zs'},{$addToSet:{tags:'Vue'}})

//注意:如果操作的元素不存在,那么会自动新增,并且将操作的值赋值给新增字段

db.person.updateOne({name:'zs'},{$addToSet:{other:'123'}})

//注意:#addToSet会自动去重,如果添加的元素已经存在了,就不会添加

db.person.updateOne({name:'zs'},{$addToSet:{other:'123'}})

//注意:如果往数组字段中添加的是文档类型,必须一模一样才会进行去重

db.person.updateOne({name:'zs'},{$addToSet:{books:{name:'html',price:'66'}}})

//下面的和上面的顺序不一样,就不会进行去重

db.person.updateOne({name:'zs'},{$addToSet:{books:{price:'66',name:'html'}}})

//注意:如果往数组字段中添加的数组,那么必须一模一样才会进行去重

db.person.updateOne({name:'ls'},{$addToSet:{tags:['1','2']}})
db.person.updateOne({name:'ls'},{$addToSet:{tags:['2','1']}})

//注意:如果往数组字段中添加的是数组,那么默认情况下会将整个数组作为一个元素添加进去
//如果不想一个整体添加进去,那么必须使用$each来添加

db.person.updateOne({name:'ls'},{$addToSet:{tags:{$each:['2','1']}}})
db.person.find()

teacher's code;

1.$addToSet数组更新操作符

$addToSet: 向数组字段中添加元素
格式 :

{$addToSet: {<field>:<values>, ...}}
2.示例
db.person.insert([
{name:'zs', books:[{name:'html', price:66}, {name:'js', price:88}], tags:['html', 'js']},
{name:'ls', books:[{name:'vue', price:99}, {name:'node', price:199}], tags:['vue', 'node']}
])
db.person.update({name:'zs'}, {$addToSet:{tags:'react'}})
3.注意点

// 注意点:如果操作的元素不存在, 那么会自动新增, 并且将操作的值赋值给新增的数组字段

db.person.update({name:'zs'}, {$addToSet:{other:'123'}})

// 注意点: $addToSet会自动去重, 如果添加的元素已经存在了, 那么就不会添加了

db.person.update({name:'zs'}, {$addToSet:{other:'123'}})

// 注意点: 如果往数组字段中添加的是文档类型, 那么必须一模一样才会去重

db.person.update({name:'zs'}, {$addToSet:{books:{name:'html', price:66}}})
db.person.update({name:'zs'}, {$addToSet:{books:{price:66, name:'html'}}})

// 注意点: 如果往数组字段中添加的是数组, 那么也必须一模一样才会去重
db.person.update({name:‘ls’}, {KaTeX parse error: Expected 'EOF', got '}' at position 27: …ags:['1', '2']}}̲) db.person.upd…addToSet:{tags:[‘1’, ‘2’]}})
db.person.update({name:‘ls’}, {KaTeX parse error: Expected 'EOF', got '}' at position 27: …ags:['2', '1']}}̲) // 注意点: 如果往往数…each来添加

db.person.update({name:'ls'}, {$addToSet:{tags:{$each: ['1', '2', '3']}}})

mongodb数组更新操作符$addToSet相关推荐

  1. mongodb$pull数组更新操作符

    mycode: db.person.insert([ {name:'zs', books:[{name:'html', price:66}, {name:'js', price:88}], tags: ...

  2. mongodb数组更新操作符$push

    /* 1.$push数组更新操作符 KaTeX parse error: Expected '}', got 'EOF' at end of input: -不去重) 格式 : {push: {:, ...

  3. MongoDB数组修改器更新数据

    MongoDB数组修改器更新数据 这里,我们将了解一下数组修改器.数组,是我们经常看到和使用到的且非常有用的数据结构:它不仅可以通过索进行引用,还可以作为集合来使用.数组修改器,顾名思义,它是用来修改 ...

  4. php mongodb 子查询,MongoDB数组子查询elemMatch

    MongoDB数组子查询elemMatch 在 MongoDB数组子查询elemMatch详解 语法 db_name.collection_name.find({field:{$elemMatch:{ ...

  5. 二、Vue基础语法学习笔记——事件监听v-on、条件判断(v-if、v-else-if、v-else、v-show)、循环遍历(v-for遍历数组对象,key属性、检测数组更新)、图书案例、双向绑定

    四.事件监听 在前端开发中,我们需要经常和用于交互. 这个时候,我们就必须监听用户发生的时间,比如点击.拖拽.键盘事件等等 在Vue中如何监听事件呢?使用v-on指令 v-on介绍 作用:绑定事件监听 ...

  6. mongodb的更新语句

    MongoDB 使用 update() 和 save() 方法来更新集合中的文档. update() 方法 update() 方法用于更新已存在的文档.语法格式如下: db.collection.up ...

  7. 服务器收到消息加入数组,从聊天服务器发送到聊天客户端的数组更新

    我发现了一个聊天服务器的代码,我有一个简短的问题.这是关于以下摘录:从聊天服务器发送到聊天客户端的数组更新 clientOutputStreams.add(作家); 显然,这种字符串数组应该被发送到聊 ...

  8. 【Vue教程四】条件渲染、列表渲染、数组更新

    一.条件渲染:[v-if][v-show] 1.v-if 指令用于条件性地渲染一块内容. 1.1.在元素中使用 v-if 指令: <body><div id="app&qu ...

  9. MongoDB数组查询

    文章目录 MongoDB数组查询 数组匹配 查询数组元素 多条件数组元素查询 1. 复合过滤条件查询数组元素 2. 查询满足多个条件的数组元素 3. 按数组索引位置查询元素 4. 按数组长度查询数组 ...

最新文章

  1. 阿里云域名注册和虚拟云主机
  2. Spring------自动化装配Bean(一)
  3. “约见”面试官系列之常见面试题之第七十四篇之v-if和v-for优先级(建议收藏)
  4. 郝蕾怒骂河南人---江湖再起风云,网络哪里有净土
  5. 引入CSS文件的@import与link的权重分析
  6. 自然语言18.2_NLTK命名实体识别
  7. java IDEA设置程序启动命令
  8. Python数据库编程练习 ※
  9. endnote导入bib
  10. 从freenom获取免费中文域名
  11. 前端下载pdf文档(支持doc/excel/ppt/pdf/jpg、png等)
  12. 应届生招聘的一些感悟和思考
  13. activiti+testng批量测试用例-请假流程
  14. python networkx 边权重_Python/NetworkX:动态计算边权重
  15. 前端学习——CSS布局
  16. 2021寒假MISC打卡DAY2
  17. 最初计算机研制时间科学家,美科学家研制“时间晶体”超越宇宙寿命 类似永动机...
  18. 杭电ACM 1713 相遇周期
  19. 如何检索CPCI-S
  20. html表格背景图片素材,HTML代码精美素材边框

热门文章

  1. Tomcat发布网站知识集锦
  2. 处理2D图像和纹理——创建2D菜单界面
  3. 在ASP.NET使用javascript的一点小技巧(转www.chinacs.net 中文C#技术站 )
  4. PAT乙级(1025 反转链表)
  5. 网易云深度学习第一课第二周编程作业
  6. dw选项卡怎么设置_EXCEL入门之设置
  7. centos 安装Jitsi架设_Docker学习6:docker安装centos7
  8. openmv 神经网络 超出内存_【openmv】openmv各种bug问题记录
  9. PostgreSQL查询当前执行中SQL的执行计划——pg_show_plans
  10. 2020,国产数据库崭露峥嵘的发轫之年