MongoDB 学习三(数据库的增删改查)

6 篇文章 0 订阅
订阅专栏
6 篇文章 0 订阅
订阅专栏
本文介绍了MongoDB的增删改查操作,包括删除文档、集合和数据库,以及如何查看帮助和官方文档。重点讲解了各种修改器的用法,如$inc自动增减数值,$unset删除键,$push、$pushAll追加数组,$addToSet有条件追加,$pull和$pullAll删除数组元素,以及批量更新的技巧。
摘要由CSDN通过智能技术生成

接昨天的内容学习,首先做一个回顾:


开始今天的内容:

1、删除文档数据

昨天说过删除文档的方法,今天补充几点:

db.persons.remove({name:"fanhu"})  //删除当前数据文档中包含这条内容的数据,_id 一块被删除。
db.persons.remove()  //删除persons下的所有数据,_id 是保存下来的,只是数据没有了。

tips:如果要删除的集合数据量很大,直接删除该集合(见下一条)并重新建立索引的方法比直接使用 remove 效率高很多。

2、删除库中的集合(这里把persons这个数据文档删除掉)

db.persons.drop()    
再来查看
show collections  --->这时候foobar这个数据库中已经没有persons这个数据文档了,当该数据库中的数据文档都被删除后foobar这个数据库也会被自动删除

3、删除数据库

db.dropDatabase()

4、数据库级别的help  (要学会查看帮助和官方文档)


show dbs  //查看所有数据库
上面我们把foobar这个数据库删除掉了,这里再重新创建一次,就当复习了。

创建完成后,这里直接使用 db.help() 会列出一堆方法,后面再详细的去学。


先试试 db.getName()   ---> foobar   //得到当前的数据库名字
db.stats()   ---->    //得到当前数据库的状态 不要写错了,不是status啊。


5、数据文档集合的help


db.persons.help()    ---> 同样会列出一堆方法。

6、数据库和集合的命名规范


 ①:不能是空字符串
 ②:不能含有 引号、逗号、空格、斜杠以及各种奇怪字符,总之作为一名程序员,我相信你懂得。这个短横线是可以使用的,但是最好别用,容易被当成减号处理,需要设置之后再用,所以没必要给自己添麻烦。
 ③:全部小写,并且不能和系统保留库同名,如admin、local、config
 ④:最多64个字节

7、可以使用内嵌文档并且支持数组

db.persons.insert({age:"27",study:{year:2016,month:12}})


db.persons.insert({age:"27",study:[1,23,22]})


8、批量插入文档

使用shell的for循环


9、save操作

save和insert的区别就在于当遇到  _id 相同的情况,前面说过,每条数据都会自动生成一个 _id 来作为唯一标识。

我们现在插入一条数据:db.psersons.insert({_id:0001},{name:"fanhu"})
然后再来插入一条数据:db.persons.insert({_id:0001},{name:"huzi"})
因为两条数据的 _id 相同,然后就报错了。



如果我们使用save就不会出现这种情况,当遇到 _id 相同的情况,会当做更新来处理。



10、更新文档

昨天讲了db.persons.update(),再来做个例子:


①:我们本想更新数据 { "_id" : ObjectId("5864e6819a74ca578c124615"), "username" : "fanhu" }
再添加上一条数据的,结果被直接替换为{ "_id" : ObjectId("5864e6819a74ca578c124615"), "age" : 27 },因此这种方法也叫做强制替换。

②:我们上面说过 update() 有两个参数,第一个查询器,第二个是修改器,如果原来文档中有一条数据,而我想跟新之后的效果是,原来有的数据就进行更新操作,没有的数据就进行插入操作,这时候要用到第三个参数 ,true或false,也就是update(查询器,修改器,true)

③:还有昨天说过的使用 $set 修改器 能够实现同样的效果。

下面再说几个修改器:

④: $inc 修改器:自动的增加或减小一个数,直接上例子:



⑤:$unset修改器:删除数据文档中的一个键。



此时第二条数据中已经没有了 height 这一条。

⑥:$push修改器:如果指定的键是数组,则追加新的数组。如果指定的键不是数组,则中断当前的操作。如果不存在指定的键,则创建数组类型的键值对。  看例子:



⑦:$pushAll修改器:批量追加

语法: db.persons.update({name:"fanhu"},{$pushAll{ 要追加到的数组名 : [ 这里是要追加的数组 ]}})

⑧:$addToSet 修改器:目标数组存在该项内容则不进行操作,不存在就追加进去

语法: db.persons.update({name:"fanhu"},{$addToSet:{ 目标数据:要追加的内容}})  


可以看到我们第一次并没有执行修改,第二次进行了追加。

⑨:$pull 修改器:删除数组中的某一项

语法:db.persons.update({name:"fanhu"},{$pull:{要从哪个数组中删除 : "要删除的项"}})


此时数组books中已经没有js11111这一项。

⑩:$pullAll 修改器:批量删除数组中的项

语法:db.persons.update({name:"fanhu"},{$pullAll:{ 要从哪个数组中删除 : ["要删除的项1","要删除的项2"]}})

11、批量更新

上面说到了update的三个参数,这里要用到第四个参数,也是true或false。
tips:如果要使用第四个参数进行批量跟新,得配合$set这个修改器进行操作,直接上例子:



mongo增删改查操作实践
qq_36208762的博客
03-12 739
1、mongo目录下启动mongo服务端。mongod --dbpath D:\Mongodb\data2、再打开一个cmd窗口执行mongo命令连接服务端。3、执行基础操作查看数据库 show dbs给数据库增加用户:db.adduser("name","passwd")认证用户:db.auth("name","passwd")创建数据库  use test查看当前位于哪个数据库下:db查看帮助...
nodejs连接mongodb数据库实现增删改查
01-20
在此之前应对MongoDB数据库有所了解,知道它的一些增删查改命令。 1.增加 var MongoClient = require(mongodb).MongoClient; var DB_URL = mongodb://localhost:27017/chm; function insertData(db) { var devices...
MongoDB中基本的增删改查操作
PythonCodeZ的博客
07-27 696
插入 语法 db.集合名称.insert(document) 插入的内容是document(文档)类型,键值对形式,使用{} 插入文档时,如果不指定参数_id,那么MongoDB会为文档分配一个唯一的ObjectID 例如 // 创建集合students db.createCollection('students') // 向集合中插入一条学生数据 db.students.insert({
MongoDB增删改查操作
混沌初开
11-02 197
使用说明: 一、MongoDB数据库参数配置 1、推荐使用mongodb.cfg.properties配置,则在构造MongoDBService对象的时候只需调用无参构造方法即可自动完成配置。 2、如果没有通过mongodb.cfg.properties,会采用程序指定的默认配置。   ? 1 2 3 4 5 6 7 ...
数据库基本操作--增删改查
weixin_33701251的博客
03-01 135
一、增:新增数据库、表、索引: 创建数据库 这样做就可以创建一个数据库: CREATE DATABASE 数据库名称 创建一个表 这样做就可以创建一个数据库中的表: CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, ....... ) 实例 本例演示如何创建名为 "Person" 的表,有四个列。列名是:"LastNa...
MongoDB3.2增删查改方法简述(CRUD操作)
逃跑的肉丸的博客
12-26 1256
一、前序 无论什么数据库,都必须会有增删查改的操作,只是方法形式不一样而已,其实思路还是差不多的, 下面我们就对MongoDB3.2版本的文档操作简述并验证一下 二、查select: 简单查询: >db.t1.find() { "_id" : ObjectId("585ce007d993c80e8713c7bd"), "x" : 1, "j" : 1 } {
webpack4+express+mongodb+vue实现增删改查的示例
10-17
在本示例中,Vue 负责构建用户界面,如列表展示、数据新增、编辑和删除等操作界面,并通过与 Express 后端的交互,实现与 MongoDB 数据库的数据增删改查操作。 具体到项目的文件结构,可以看到,项目由多个关键目录...
mongoDB增删改查+前端页面实现+idea+themlesf+mybatis
07-29
在本项目中,我们将探讨如何使用MongoDB进行数据的增删改查操作,以及如何结合前端页面、IntelliJ IDEA开发环境、Thymeleaf模板引擎和MyBatis持久层框架来构建一个完整的应用程序。 首先,让我们深入了解MongoDB的...
mongodb数据库增删改查
10-25
在Java应用程序中,我们可以使用MongoDB Java驱动程序来与MongoDB进行交互,执行基本的数据库操作,如增(添加)、删(删除)、改(更新)和查(查询)。下面将详细介绍这些操作。 1. 添加(Add) 要向MongoDB集合...
用数组模拟一个数据库,进行增删查改的操作
黑暗の独行者
06-26 824
    数组只能存放,单一类型,限定长度大小的。我们可以通过下表来进行访问指定元素。现在用面向对象的方式使用数组模拟数据库,进行查找,修改,删除,增加的典型操作。     现在我们自定义一个MyArray类,有两个构造方法,一个是自定义数组的长度,一个是默认长度。     public class MyArray { /** * 数组的当前下标 */ private int...
访问数据库的帮助类DB
12-01
它可以很方便的帮你访问数据库执行存储过程,而不像以前那样重复敲繁琐杂乱的代码,而是干净的完成数据库的操作,我本不想要分的,但是我也需要下别人的东西,所以对不起了!同时我希望大家如果下了此帮助类,如果觉得那里不爽的可以完善修改,然后上传
数据库-----sql语句对数据库、基本表创建、增删改查等基本操作
FDk_LCL的博客
05-21 4650
sql语句对数据库操作: 1、创建数据库 create database 数据库名称; 举例:创建一个数据库dbcourse create database dbcourse; 2、查看数据库 show databases; 3、使用数据库 use 数据库名称 举例:使用数据库dbcourse use dbcourse; 4、删除数据库 drop database 数据库...
MongoDB增删改查操作
网络
02-09 793
插入语句MongoDB的 插入语句之前也有过介绍了,这里我们只做一个简单的示例:> db.customers.insert({id:11,name:'lisi',orders:[{orders_id:1,create_time:'2017-02-06',products:[{product_name:'MiPad',price:'$100.00'},{product_name:'iphone',pr
数据库操作之增删改查
apity123的博客
08-05 410
在DBUtil.java类中 package com.po; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { private static String Driver; private static String u
数组的增删改查
xuboqiang的博客
04-02 384
描述 “增删改查”是数据库的几种基本操作,现在我们用数组DataBase[]来模拟一个数据库,来实现这几种功能。 增:+ p v(将数据v插入到DataBase[p]位置上,保证p不会超过数据库末尾元素位置) 删:- p (将DataBase[p]位置的元素删除,保证p不会超过数据库末尾元素位置) 改:* p v(将DataBase[p]位置的数据修改为v,保证p不会超过数据库末尾元素位置) 查:? v (查找DataBase中是否有值为v的元素,若查找成功输出其首次出现时的下标,否则输
0x05 MySQL 数据操作
weixin_30755709的博客
12-15 133
一 插入数据INSERT 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); 语法二: INSERT INTO 表名 VALUES (值1,值2,值3…值n); 2. 指定字段插入数据 语法: INSERT INTO 表名(字段...
关于数据库增删改查-数据库操作汇总
GoingJack博客
08-09 193
例子一 假设我们现在有张表 1,学生表 2,课程表 3、选课表 那么我们如何在数据表中查询相关内容呢。 题目一: 1,读出没有修的课程(就是查询一门课程,这门课程没有被任何一位同学所选的课程。) select a.name from course a where a.id not in (select cid from xk); select dist...
关于数据库增删改查练习
Z1027L的博客
10-09 579
package q; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Jdbc { private static
通过用户模型,对数据库进行增删改查操作。
weixin_33978044的博客
11-15 71
增加:db.session.add(user)db.session.commit() user = User(username='mis111',password='mis1114') db.session.add(user) db.session.commit() 查询:User.query.filter(User.username == 'mis1114').f...
MongoDB数据库操作:增删改查全面指南
"Mongo DB增删改查命令" MongoDB是一种流行的开源、文档型的NoSQL数据库,因其灵活性、高...掌握这些基本的MongoDB增删改查命令是理解和使用MongoDB的基础,随着实践经验的积累,你将能更熟练地应对各种数据操作场景。
写文章

热门文章

  • Vue项目中使用ueditor富文本编辑器(一) 55932
  • npm install 无响应解决方案,从此不用在等了 36912
  • node搭建服务器,写接口,调接口,跨域 34574
  • JS实现各种复制到剪贴板 31155
  • Vuex中mapState的用法 29620

分类专栏

  • javascript 52篇
  • html5 29篇
  • css3 22篇
  • 移动端开发 17篇
  • jquery 8篇
  • 微信开发 3篇
  • angular 2篇
  • 布局和样式 4篇
  • jsonp 1篇
  • 开发工具 1篇
  • css 1篇
  • react
  • javascript ajax 1篇
  • josn 1篇
  • webpack 4篇
  • php 8篇
  • mui 5篇
  • node 9篇
  • 环境搭建 1篇
  • sublime 2篇
  • swiper 2篇
  • iterm2 1篇
  • vue 9篇
  • vim 1篇
  • 第三方登录 1篇
  • 动画
  • ajax websocket
  • websocket
  • ajax 3篇
  • fis 2篇
  • express 3篇
  • seo 1篇
  • npm 2篇
  • git 1篇
  • github 1篇
  • Mongodb 6篇
  • 数据库 6篇
  • vue vue-router 1篇
  • 电商
  • sql 4篇
  • jquery,插件,轮播图
  • Processing
  • cookie
  • 小程序 6篇
  • html5,canvas 1篇
  • 总结 4篇
  • 全景 2篇
  • hcharts 1篇
  • app 3篇
  • 微信 2篇
  • jdk

最新评论

  • Canvas 绘制圆形图片、绘制圆角矩形图片

    少年的范儿: 紧急关头,来个收费,哎,真是要命

  • 微信小程序 视频列表滑动无限循环(仿抖音)

    qq_21040147: 一样。能不能发一下

  • 微信小程序 视频列表滑动无限循环(仿抖音)

    黑色GGBoy: "change:trackData" , "trackData" 一个view内置组件,怎么会有这两个什么鬼的属性

  • 微信小程序 视频列表滑动无限循环(仿抖音)

    怪哈哈: touch.wxs能否发一下啊

  • 微信小程序 视频列表滑动无限循环(仿抖音)

    怪哈哈: 大哥,这部分的整体代码可以给一下吗,能不能加个微信啊,遇到类似问题了,求求了表情包

大家在看

  • JavaScript:三、数据类型 218
  • SpringBoot篇(一、认识SpringBoot) 833
  • Linux systemd 用法详解 605
  • IO进程_day5
  • 第6节:函数

最新文章

  • 微信小程序 视频列表滑动无限循环(仿抖音)
  • 后门查杀站
  • 去水印小程序,证件照小程序,电商平台小程序,都是前后端
2022年2篇
2021年2篇
2020年3篇
2019年2篇
2018年14篇
2017年27篇
2016年103篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老虎帅呆了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢花盆弊端自贡玻璃钢卡通座椅雕塑张掖玻璃钢动物雕塑制作珠海祥云玻璃钢花盆沧州玻璃钢花盆桂林玻璃钢雕塑价格花朵玻璃钢彩绘雕塑襄阳小区玻璃钢雕塑制作定做广场玻璃钢花盆玻璃钢造型雕塑哪家强玻璃钢雕塑风格玻璃钢雕塑表面喷真石漆江苏大型商场创意商业美陈怎么做杨浦商场开业美陈杭州玻璃钢花盆哪里有湖州欧式玻璃钢雕塑设计玻璃钢雕塑户外摆件聊城玻璃钢公仔雕塑成都景区玻璃钢雕塑制作人物雕塑玻璃钢沉思者雕塑黄山动物玻璃钢雕塑多少钱平顶山广西玻璃钢人物雕塑珠海玻璃钢卡通雕塑价格合理珠海玻璃钢雕塑费用是多少江苏动物玻璃钢雕塑图片珠海玻璃钢透光雕塑定做新式的玻璃钢动物雕塑抚顺商场美陈广东人物玻璃钢雕塑费用新密玻璃钢雕塑定制香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化