mongoDB4--mongoDB的增删改查

时间:2022-09-02 14:08:20

MongoDb基本操作之增删改查

我们知道传统关系型数据库的最常用操作就是“增加/删除/修改/查询”,也就是
传说中的CRUD(create/remove/updte/delete)。

在学习mongodb的时候,我们也是从CRUD操作入手。

我们首先创建一个库,名称为test:
mongoDB4--mongoDB的增删改查

创建一个student表:
mongoDB4--mongoDB的增删改查

1.新增操作
(1)增加单篇文档(db.CollectionName.insert({json数据}))
我们为school表插入一条数据:
mongoDB4--mongoDB的增删改查
mongo会为每一行数据定义一个_id主键,想改变这个主键就手动指定即可:
mongoDB4--mongoDB的增删改查

(2)一次性增加多条数据(使用[{},{},{}...])
json是一个对象,有数组这个概念,
只需要把多个队形放到一个数组里面插入,就能实现批量添加。
mongoDB4--mongoDB的增删改查
注意:json中的数组就是“[]”中括号来组成的。

2.删除操作
(1)删除表中一条数据(db.CollectionName.reomve({删除条件,选项}))
我们删除student表中code属性值为'004'的数据:
mongoDB4--mongoDB的增删改查

注意:
1.查询表达式依然是个json对象
2.查询表达式匹配的行,将被删掉
3.如果不写查询表达式,Collection中的所有文档将被删掉

我们多插入几个信息:
mongoDB4--mongoDB的增删改查
插入了两个男士的信息和两个女士的信息。

我们删除所有的女士,可以在删除条件中制定sex:'women'即可删除:
mongoDB4--mongoDB的增删改查

(2)删除选项
我们可以在删除条件后面加一个选项,意思是(justOne:true/false),是否
只删除一行。默认为false。

下面我们删除两个男士,在后面加一个“true”,发现就只删除一行符合条件
的信息:
mongoDB4--mongoDB的增删改查

3.修改
改谁? --查询表达式
改成什么样?  --新值 或 赋值表达式
操作选项 --可选参数

(1)修改文档的信息(db.CollectionName.update({老参数},{新参数}))
我们把name为tom的人的姓名改为“tomSmith”
mongoDB4--mongoDB的增删改查

发现名字属性确实修改掉了,但是我们要注意,tom这个文档的其它属性
全部没有了!

其实很好解释,“{}”大括号中一般代之一个整个文档,所以,当我们制定
某个参数对应的文档的新信息的时候,修改的是整个文档。

如果我们要修改某一个参数,而又不想改变文档中的其它数据呢?我们
可以使用“set”赋值表达式来修改。

(2)修改文档的某个属性(db.CollectionName.update({老参数},{$Set:{新参数}}))
我们把name为jack的人的姓名改为“jackson”
mongoDB4--mongoDB的增删改查

我们可以发现只修改了name,其它属性没有被影响。

(3)修改时的赋值表达式
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列

我们下面举个例子来说明这些参数。

例子1:
首先我们创建一个文档信息,里面是一个人的信息。
这是一个女学生,没有银行卡,目前只有100元钱。
mongoDB4--mongoDB的增删改查
女学生大学毕业之后,变成了一个商人,我们要把她的角色信息
改为“商人(BusinessMan)”,使用$set修改;然后她有钱了,
就把她的“无银行卡”这个属性删除,使用$unset;
女孩挣了1000000万,要加在之前的钱数上面,使用$incr;
女孩嫌弃sex属性不好听,花钱改成了“gender(性别)”,使用$rename。
mongoDB4--mongoDB的增删改查

(4)修改选项
{upsert:true/false,multi:true/false}
Upsert是指没有匹配的行,则直接插入该行(和mysql中的replace一样)
multi是修改多行(默认是false,修改一行)。

例:
mongoDB4--mongoDB的增删改查
没有_id为99的文档,所以就直接插入该文档

例:
mongoDB4--mongoDB的增删改查
db.student.update({gender:'man'},{gender:'women'},{multi:true});
把所有的gender为"man"的人全部改为"women"。

说了上面两个选项,补充一下一个赋值表达式“$setOnInsert”,意思是
当upsert为true时,因为没有该文档而导致发生了insert操作时,
可以补一些字段。

假设我们更新code为066的文档(数据库中没有,会发生insert操作),我们可以
使用$setOnInsert在发生insert的时候补充属性:
mongoDB4--mongoDB的增删改查

4.查询
语法:db.CollectionName.find(查询表达式,查询的列);
db.CollectionName.find(表达式,{列1:1,列2:1,列3:0});
即是,想显示的属性后面跟数字1,不想显示的后面跟数字0

(1)查询所有文档
db.CollectionName.find();

(2)只查询某个属性(db.CollectionName.find({},{属性名}))
查询所有文档中带有性别的人的信息:
mongoDB4--mongoDB的增删改查

查询所有文档中带有性别的人的信息,且不查询id属性:
mongoDB4--mongoDB的增删改查

以上就是mongodb的增删改查的所有操作。

其实数据库的CRUD操作都离不开一个东西,就是“查询表达式”,也就是where/or/and/not等语句,这些在下一篇总结中向大家阐述。

mongoDB4--mongoDB的增删改查的更多相关文章

  1. Java连接MongoDB进行增删改查

    1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...

  2. MongoDB的增删改查 转

    MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...

  3. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  4. Scala对MongoDB的增删改查操作

    =========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...

  5. C&num; 对MongoDB 进行增删改查的简单操作

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  6. python操作三大主流数据库&lpar;8&rpar;python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  7. python 全栈开发,Day124&lpar;MongoDB初识&comma;增删改查操作&comma;数据类型&comma;&dollar;关键字以及&dollar;修改器&comma;&quot&semi;&dollar;&quot&semi;的奇妙用法&comma;Array Object 的特殊操作&comma;选取跳过排序&comma;客户端操作&rpar;

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  8. 2,MongoDB之增删改查及pymongo的使用

    本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...

  9. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  10. MongoDB之增删改查&lpar;一&rpar;

    本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其它关系型数据库一样,通过insert来添加数据到集合中去. db.collectionName.insert(内容) 显示数据库中 ...

随机推荐

  1. iOS逆向工程之Hopper&plus;LLDB调试第三方App

    LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...

  2. easyUI框架之学习1--框架

    <!DOCTYPE html><html> <head > <link href="~/Scripts/easyUI/themes/default/ ...

  3. 二叉搜索树(Binary Search Tree)

    二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树. 二叉搜索树:一棵二叉树,可以为空:如果不为空,满足以下性质: 非空左子树的所有键值小于其根结点的键值: 非空右 ...

  4. 【转】SQL 语句:Alter table

    转载自:http://www.w3school.com.cn/sql/sql_alter.asp ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. SQL ...

  5. asp&period;net 下载Excel &lpar;数据流,不保存&rpar;--客户端

    效果图: 前端页面 <html> <head> <title>Test For Excel</title> <script src="j ...

  6. 在Hibernate中分别使用JDBC和JTA事务的方法

    在Hibernate中使用JDBC事务 Hibernate对JDBC进行了轻量级的封装,它本身在设计时并不具备事务处理功能.Hibernate将底层的JDBCTransaction或JTATransa ...

  7. C&plus;&plus; operator bool

    雕虫小技: #include <iostream> struct A{ operator bool(){ return false; } }; int main() { A a{}; if ...

  8. 潭州课堂25班:Ph201805201 WEB 之 CSS 第三课 &lpar;课堂笔记&rpar;

    在 CSS 中第个标签都可以认为是个盒子,盒子就有以下几层 边框 border border-top: 5px solid black; /*上边框 实线*/ border-right: 3px do ...

  9. 关于OpenCV2&period;4&period;9在VS2012上的配置

    今天写着篇文章是由于自从上次电脑换硬盘今天再次安装OpenCV又遇到了一些问题,最后终于搞定,,,,用的版本是2.4.9,,,因为第一次配置用3.0的没有配置成功,而2.4.9的配置成功. 首先当然是 ...

  10. 3The superclass &OpenCurlyDoubleQuote;javax&period;servlet&period;http&period;HttpServlet&quot&semi; was not found on the Java Build Path 之一

    另外一篇短文里还有第三种解决方案,查看请点击这里 1.异常信息 创建maven web项目时,出现 The superclass “javax.servlet.http.HttpServlet&quo ...