MongoDB对Document(文档)的插入、删除及更新_MongoDB

来源:脚本之家  责任编辑:小易  

一.Document数据插入

1.插入文档

db.[文档名].insert({BSON数据})

2.批量插入文档

shell当中不支持批量插入,想完成批量插入操作,可以使用shell的for循环,或者其他高级语言当中的批量操作方法

例:使用for循环插入10个学生,在学生集合当中

我使用的是2.6的版本,发现已经支持了批量插入操作。

3.Save操作

save操作和insert操作的区别在于,save在遇到_id相同的插入数据时候,会覆盖原来的,而insert会提示错误

例子:

用insert的方法去插入一个_id相同的数据

二.Document数据删除

1.删除列表中所有数据

db.[文档名].remove({})

集合的本身和索引不会别删除

例子:删除列表中所有数据

2.根据条件删除

例: 删除_id为10的那条记录

三.Document数据更新

1.直接覆盖更新

db.[文档名].update({查询器},{修改器})

{查询器}就相当于是条件

{修改器}就是你要直接覆盖替换的BSON数据

例:更新_id为9,那个学生,把Name变成age

注意:当主键冲突的时候会报错并且停止更新操作

例:我用_id为8的数据,去替换_id为9的记录,因为_id为8的数据已经存在,不允许有两个主键为_id:8

的记录,所以会报错。

2.采用insertOrUpdate的做法进行更新

db.[文档名].update({查询器},{修改器},true)

后面第三个参数为true,就代表是当记录不存在的时候,就插入一条记录,如果存在就更新

例:更新一个_id为10的数据,没有就插入,有就更新

3.批量更新操作

db.[文档名].update({查询器},{修改器},false, true)

※默认情况当查询器查询出多条数据的时候默认就修改第一条数据

先修改一下数据如下:

让_id为9和10的数据,有相同的内容

再插入一个_id=11,age=20的数据

第四个参数不写的情况下去更新:

如下:只能更新第一个age=20的数据

第四个参数添加并且为true的时候,我们预期是10和11都能被修正

但是当我试图去更新的时候,报错了,提示说批量更新只能在有$操作的时候使用

修正插入语句

这里注意$set后面要有":",而且它和它后面的修改器要被{}包起来,因为我第一次使用mongoDB,所以总写错。

4.使用修改器来完成局部更新操作

$set它用来指定一个键值对,如果存在键就进行修改不存在则进行添加

{$set:{field:value}}

_id为10的数据,没有Name属性,进行了添加,有age键,就进行了修改

$inc

1.适用于数字类型

2.能够对键对应的数字类型数值进行加减操作

{$inc:{field:value}}

给age=30的数据增加2岁,由于没有使用批量更新参数,所以默认修正了第一条

$unset删除指定的键

{$unset:{field:1}}

我在例子里面先是删除了age=30的数据的age属性,但是有一点不明白,unset后面那个field:1是什么,于是我查了一下,说是后面是什么都无所谓,unset只看键不看value,于是又做了第二个例子

$push

1.如果指定的键是数组增追加新的数值

2.如果指定的键不是数组则中断当前操作,报错

3.如果不存在指定的键则创建数组类型的键值对

{$push:{field:value}}

$pushAll

用法同上,是批量添加数组数据的操作

{$pushAll:{field:array}}

1.第一个操作没有用$pushAll,所以把["C#","JAVA"]当成一个数组项目处理了

2.第二个操作使用了$pushAll,所以当成了两项来处理的。

$addToSet

往数组中添加项目,存在就不添加,不存在就添加(push不管存不存在都添加)

{$addToSet:{field:value}}

1.先用push插入,发现更新完成后有两个“C#”

2.再用addToSet更新,发现没有增加项目

$pop

从指定数组删除一个值1删除最后一个数值,-1删除第一个数值

{$pop:{field:value}}

1.删除最后一个索引位置的数据,后面的value用"1"

2.删除第一位置索引的数据,value=-1

$pull

push的逆向操作,删除键是数组的项目中的指定元素

{$pull:{field:value}}

$pullAll

批量删除数组中的指定元素

{$pullAll:{field:array}}

$ 数组定位器,如果数组有多个数值我们只想对其中一部分进行操作我们就要用到定位器($)

{$push:{field:value}}

1.实例第一个是在刚刚清空的数组里面添加了两个元素

2.我想在{“SubID”:1,"SubName":"MangoDB"}这个对象里面再添加"Teacher":"Lucy"

5.$addToSet与$each结合完成批量数组更新

理解:首先从上面的例子中我们知道,addToSet这个修改器,可以判断是否项目存在,不存在的时候就直接插入。

此时我有一个功能,例如我想往一个存在数据的数组中批量更新数据,如果存在就不更新。那么只使用addToSet是不能进行批量的,于是就要结合$each来实现。

例:

1.新创建一个文件,并使用pushAll修改器添加数据:

2.我想要批量插入"C#","PHP","JavaScript","JAVA",要求不能有重复的

如果这时候我直接用pushAll来进行更新的话,"C#"和"JAVA"就会有重复

在shell当中输入如下命令:

总结:以上就是MongoDB的Document的插入、删除以及更新的使用。

到此这篇关于MongoDB操作Document的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持真格学网。

您可能感兴趣的文章:MongoDB基础之文档操作使用MongoDB操作文档MongoDB中文档的更新操作示例详解MongoDB数据库文档操作方法(必看篇)MongoDB中对文档的增删查改基本操作方法总结MongoDB快速入门笔记(三)之MongoDB插入文档操作MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码MongoDB快速入门笔记(六)之MongoDB的文档修改操作MongoDB快速入门笔记(六)之MongoDB删除文档操作

  • 本文相关:
  • 详解mongodb 主从配置
  • mongodb 简单入门教程(安装、基本概念、创建用户)
  • mongodb基础命令以及操作示例详解
  • mongodb增量备份脚本的实现和原理详解
  • mongodb 4.0事务回滚的辛酸历程探究
  • mongodb聚合group的操作指南
  • 如何使用docker安装一个mongodb最新版
  • mongodb与mysql常用操作语句对照
  • mongodb索引知识_动力节点java学院整理
  • windows下安装mongodb以及node.js连接mongodb实例
  • mongodb 对数据进行查询并导出
  • MongoDB和Mysql怎样结合
  • mongodb 怎么 对类型为list的字段的值进行汇总统计
  • php对mongodb的扩展(小试牛刀)
  • php对mongodb的扩展(初出茅庐)
  • 如何写个工具类来对mongodb进行shard
  • mongodb 怎么对多个字段模糊查询
  • PHP对MongoDB[NoSQL]数据库的操作
  • mongodb集群在对集合分片时能否同时操作多个集合
  • 如何对MongoDB 3.2.7进行用户权限管理配置
  • 如何对mongodb两个集合和集合内嵌套数组对象进行update更...
  • drill 0.7 对mongodb哪个版本支持比较好?
  • 聚合函数对mongodb有什么影响
  • 如何在Java中对MongoDB按日期进行查询统计
  • 对mongodb的查询结果可以用fastjson解析吗
  • 对mongodb的查询结果可以用fastjson解析吗
  • mongodb 可以对Mixed类型的字段进行过滤吗
  • mongodb 怎么对多个字段模糊查询
  • mongodb 索引对字符串怎么升序
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mongodb基础之文档操作使用mongodb操作文档mongodb中文档的更新操作示例详解mongodb数据库文档操作方法(必看篇)mongodb中对文档的增删查改基本操作方法总结mongodb快速入门笔记(三)之mongodb插入文档操作mongodb快速入门笔记(四)之mongodb查询文档操作实例代码mongodb快速入门笔记(六)之mongodb的文档修改操作mongodb快速入门笔记(六)之mongodb删除文档操作详解mongodb 主从配置mongodb 简单入门教程(安装、基本概念、创建用户)mongodb基础命令以及操作示例详解mongodb增量备份脚本的实现和原理详解mongodb 4.0事务回滚的辛酸历程探究mongodb聚合group的操作指南如何使用docker安装一个mongodb最新版mongodb与mysql常用操作语句对照mongodb索引知识_动力节点java学院整理windows下安装mongodb以及node.js连接mongodb实例mongodb常用操作命令大全mongodb各种查询操作详解浅谈mysql和mariadb区别(mariadb和mysqmongodb数据库插入、更新和删除操作详解mongodb 数据库操作--备份 还原 导出 导入mongodb中使用distinct去重的简单方法mongodb插入数据的3种方法mongodb常见错误与解决方法小结(mongodb中经常出mongodb整库备份与还原以及单个collection备份mongodb查询操作限制返回字段的方法mongodb 忘记密码的解决办法深究从mongodb的objectid中获取时间信息mongodb中聚合函数java处理示例详解mongodb模糊查询操作案例详解(类关系型数据库的 like 和 not mongo中模糊查询的综合应用mongodb高效读写海量数据的方法centos7下安装mongodb数据库过程mongodb安全及身份认证(实例讲解)centos 7下mongodb开机无法自启动的解决方法详解mongodb搭建replica set的方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved