iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MongoDB怎么对Document插入、删除及更新
  • 829
分享到

MongoDB怎么对Document插入、删除及更新

2023-07-02 16:07:04 829人浏览 薄情痞子
摘要

这篇文章主要介绍了MongoDB怎么对Document插入、删除及更新的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mongoDB怎么对Document插入、删除及更新文章都会有所收获,下面我们一起来看看吧。一

这篇文章主要介绍了MongoDB怎么对Document插入、删除及更新的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mongoDB怎么对Document插入、删除及更新文章都会有所收获,下面我们一起来看看吧。

一.Document数据插入

1.插入文档

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

2.批量插入文档

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

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

MongoDB怎么对Document插入、删除及更新

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

3.Save操作

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

例子:

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

MongoDB怎么对Document插入、删除及更新

二.Document数据删除

1.删除列表中所有数据

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

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

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

MongoDB怎么对Document插入、删除及更新

2.根据条件删除

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

MongoDB怎么对Document插入、删除及更新

三.Document数据更新

1.直接覆盖更新

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

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

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

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

MongoDB怎么对Document插入、删除及更新

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

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

的记录,所以会报错。

MongoDB怎么对Document插入、删除及更新

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

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

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

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

MongoDB怎么对Document插入、删除及更新

3.批量更新操作

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

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

先修改一下数据如下:

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

MongoDB怎么对Document插入、删除及更新

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

MongoDB怎么对Document插入、删除及更新

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

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

MongoDB怎么对Document插入、删除及更新

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

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

MongoDB怎么对Document插入、删除及更新

修正插入语句

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

MongoDB怎么对Document插入、删除及更新

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

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

{$set:{field:value}}

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

MongoDB怎么对Document插入、删除及更新

$inc

适用于数字类型

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

{$inc:{field:value}}

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

MongoDB怎么对Document插入、删除及更新

$unset删除指定的键

{$unset:{field:1}}

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

MongoDB怎么对Document插入、删除及更新

$push

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

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

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

{$push:{field:value}}

MongoDB怎么对Document插入、删除及更新

$pushAll

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

{$pushAll:{field:array}}

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

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

MongoDB怎么对Document插入、删除及更新

$addToSet

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

{$addToSet:{field:value}}

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

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

MongoDB怎么对Document插入、删除及更新

$pop

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

{$pop:{field:value}}

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

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

MongoDB怎么对Document插入、删除及更新

$pull

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

{$pull:{field:value}}

MongoDB怎么对Document插入、删除及更新

$pullAll

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

{$pullAll:{field:array}}

MongoDB怎么对Document插入、删除及更新

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

{$push:{field:value}}

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

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

MongoDB怎么对Document插入、删除及更新

MongoDB怎么对Document插入、删除及更新

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

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

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

例:

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

MongoDB怎么对Document插入、删除及更新

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

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

在shell当中输入如下命令:

MongoDB怎么对Document插入、删除及更新

关于“MongoDB怎么对Document插入、删除及更新”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“MongoDB怎么对Document插入、删除及更新”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: MongoDB怎么对Document插入、删除及更新

本文链接: https://www.lsjlt.com/news/343046.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB怎么对Document插入、删除及更新
    这篇文章主要介绍了MongoDB怎么对Document插入、删除及更新的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MongoDB怎么对Document插入、删除及更新文章都会有所收获,下面我们一起来看看吧。一...
    99+
    2023-07-02
  • mysql 数据插入和更新及删除详情
    目录1、插入2、更新3、删除1、插入 INSERT INTO customers( customers.cust_address, customers.cust_city, cu...
    99+
    2024-04-02
  • PostgreSQL数据库事务插入删除及更新操作示例
    目录INSERTDELETEUPDATE事务INSERT 使用INSERT语句可以向表中插入数据。 创建一个表: CREATE TABLE ProductIns (produ...
    99+
    2024-04-02
  • JavaScript之DOM如何实现插入更新删除
    这篇文章主要介绍了JavaScript之DOM如何实现插入更新删除,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。更新拿到一个DOM节点后,我...
    99+
    2024-04-02
  • PostgreSQL数据库事务插入删除及更新操作的方法
    这篇文章主要介绍了PostgreSQL数据库事务插入删除及更新操作的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PostgreSQL数据库事务插入删除及更新操作的方法文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-29
  • MyBatis批量查询、插入、更新、删除如何实现
    今天小编给大家分享的是MyBatis批量查询、插入、更新、删除如何实现,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。1.批量查询提供两种方式。方式一,返回值: List<Cit...
    99+
    2023-07-06
  • MySQL数据中如何实现插入、更新与删除
    小编给大家分享一下MySQL数据中如何实现插入、更新与删除,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!案例:创建表books,...
    99+
    2024-04-02
  • MyBatis批量查询、插入、更新、删除的实现示例
    目录1.批量查询1.1在CityBatchMapper中接口代码1.2 在CityBatchMapper.xml中SQL代码2.批量插入2.1在CityBatchMapper中接口代...
    99+
    2023-05-20
    MyBatis批量查询 MyBatis批量插入 MyBatis批量删除
  • PHP中如何插入、更新和删除数据库记录?
    在 php 中,可以分别通过 insert、update 和 delete 语句插入、更新和删除数据库记录。插入数据时,使用 insert 语句指定目标表和列,并提供插入的值。...
    99+
    2024-05-06
    数据库 php
  • 更新了win11怎么删除
    这篇文章主要介绍“更新了win11怎么删除”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“更新了win11怎么删除”文章能帮助大家解决问题。方法: 首先我们双击进入“此电脑”然后在其中右键选中C盘,选...
    99+
    2023-07-01
  • 怎么删除win10更新文件
    要删除Windows 10的更新文件,可以按照以下步骤进行操作:1. 打开Windows 10的设置菜单。点击“开始”按钮,然后点击...
    99+
    2023-08-29
    win10
  • 深入解析Golang中链表的插入、删除、更新和查询操作
    Golang 中链表的增删改查操作详解 链表(linked list)是一种常见的数据结构,它由一组结点(node)组成,每个结点包含数据和指向下一个结点的指针。相比于数组,链表的优势在于插入和删除操作的时间...
    99+
    2024-01-29
    链表 (链表)
  • win10怎么删除更新的补丁
    要删除Windows 10更新的补丁,您可以按照以下步骤进行操作:1. 打开控制面板。- 可以通过在开始菜单中搜索“控制面板”来打开...
    99+
    2023-08-29
    win10
  • MySQL数据库操作DML 插入数据,删除数据,更新数据
    目录DML介绍数据插入数据修改数据删除DML介绍 DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。 关键字...
    99+
    2024-04-02
  • sql查询语句教程之插入、更新和删除数据实例
    目录前言1、插入数据1.1 为表的所有字段插入数据1、insert语句中不指定具体的字段名2、insert语句中列出所有字段1.2 为表的指定字段插入数据1.3 同时插入多条记录1....
    99+
    2024-04-02
  • MySQL中数据表如何实现数据插入、更新、删除操作
    小编给大家分享一下MySQL中数据表如何实现数据插入、更新、删除操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、插入数据 ...
    99+
    2024-04-02
  • git怎么只更新删除的文件
    要只更新删除的文件,可以使用git add -u命令。这个命令会将所有被修改和被删除的文件加入到暂存区中,而不包括新添加的文件。以下...
    99+
    2023-10-18
    git
  • Oracle中多表关联批量插入批量更新与批量删除操作
    该文章会分为三部分 1.多表关联批量插入 2.多表关联批量更新 3.多表关联批量删除 首先要明白一点,为什么会有批量这一个概念,无非就是数据太多了,在java端把数据查出来然后在按照100-300的批...
    99+
    2024-04-02
  • 数据库怎么删除与更新记录
    这篇文章主要介绍了数据库怎么删除与更新记录的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇数据库怎么删除与更新记录文章都会有所收获,下面我们一起来看看吧。   &nb...
    99+
    2024-04-02
  • springboot中怎么使用redis对单个对象进行自动缓存更新删除
    springboot中怎么使用redis对单个对象进行自动缓存更新删除,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。创建一个实体类@Data@EqualsAndHashCo...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作