[MongoDB] MongoDB的基本操作以及文档的增删改查
参考视频
链接:https://pan.baidu.com/s/1tAWPEC8yppyrPupkUFdCWQ
提取码:gdn8
MongoDB的基本操作
基本概念
- 生活中:仓库、架子、物品
- 计算机:数据库(database) 、集合(collection) 、数据/文档(document)
查看数据库
语法
show databases
效果
隐式创建,在有数据时,自动创建
选择数据库
语法
use 数据库名
效果
删除数据库
语法
use 数据库名
db.dropDatabase()效果
查看集合
语法
show collections
效果
创建集合
语法
db.createCollection(‘集合名’)
效果
删除集合
语法
db.集合名.drop()
效果
小总结
数据库 | 集合 | |
---|---|---|
查看 | show databases | show collections |
创建 | 有单独的语法,但是忽略隐式创建 | db.createCollection(‘集合名’) |
选择 | use 数据库名 | 省略 |
删除 | use 数据库名;db.dropDatabase() | db.集合名. drop() |
MongoDB文档的增删改查(CURD)
C增
语法
- db.集合名.insert(JSON数据)
说明
- 集合存在则直接插入数据,集合不存在隐式创建
练习
- 在test2数据库的c1集合中插入数据(姓名叫webopenfather年龄18岁)
use test2 db. c1.insert({uname: "webopenfather",age:18})
留心1:数据库和集合不存在都隐式创建
留心2:对象的犍统一不加引号方便看, 但是查看集合数据时系统会自动加
留心3: mongodb会给每条数据增加一个全球唯一-的id犍id的组成
思考1:是否可以自定义id值?
回答:可以,只需要给插入的JSON数据增加_id键即可覆盖(但实战强烈不推荐)
db.c1.insert({_id:1, uname:"webopenfather", age:18})
思考2:如何一次性插入多条记录?
回答:传递数据,数组中写-个个SON数据即可
db.c1.insert([{uname:"z3",age:3},{uname:"z4",age:4},{uname:"w5",age:5} ]) 含义:一次性插入3条数据到c1集合
思考3:如何快速插入10条数据
回答: mongodb底层使用JS引擎实现的,所以支持部分js语法
use test2 for(var i = 1;i<=10;i++){db.c2.insert({uname:"a"+i, age:i}) }
save也可以插入数据,如果save的数据在集合里面就直接替换更新,没有这个数据的存在就新增加一条。
R查
- 基础语法:db.集合名.find(条件 [,查询的列])
条件查询所有数据 {}或者不写查询age=6的数据 {age:6}既要age=6又要性别=男 {age:6,sex:'男'}查询的列(可选参数不写 - 这查询全部列(字段{age:1} 只显示age列(字段{age:0} 除了age列(字段都显示留心:不管你怎么写系统自定义的_id都会在
- 升级语法
db.集合名.find({键:值}) 注:值不直接写{运算符:值}
db.集合名.find({键:{运算符:值}
})
运算符 | 作用 |
---|---|
$gt | 大于 |
$gte | 大于等于 |
$lt | 小于 |
$lte | 小于等于 |
$ne | 不等于 |
$in | in |
$nin | not in |
练习1:查询所有数据
练习2:查询年龄大于5岁的数据?
练习3:查询年龄是5岁、8岁、10岁的数据?
练习3:只看年龄列,或者年龄以外的列(_id别管它)?
U改
- 基础语法: db.集合名.update(条件, 新数据 [,是否新增,是否修改多条])
是否新增:指条件匹配不到数据则插入(true是插入,false否不插入默认)
是否修改多条:指将匹配成功的数据都修改(true是,false否默认)
- 升级语法
是否新增:指匹配不到数据则插入(true-是插入,false-否不插入默认)
是否修改多条:将匹配成功的数据都修改(true-是,false-否默认)
db.集合名.update(条件, 新数据){修改器: {键:值}}
修改器 | 作用 |
---|---|
$inc | 递增 |
$rename | 重命名列 |
$set | 修改列值 |
$unset | 删除列 |
- 准备工作
use test2;
for(var i = 1; i<= 10; i++){db.c3.insert( {"uname":"zs"+i,"age":i} );
}
练习1:将{uname:“zs1”}改为{uname:“zs2”}
发现:默认不是修改,而是替换
解决:使用升级语法 修改器
需求:使用修改器将zs4的姓名改为zs44
语法:db.c3.update({uname:"zs4"}, {$set: {uname: "zs44"}})
练习2:给{uname:“zs10”}的年龄加2岁或者减2岁
练习3:修改器综合练习
插入数据:db.c4.insert( {uname:“神龙教主”,age:888,who:“男”,other:“非国人”});
完成需求:
- uname 改成 webopenfather (修改器:$set)
- age 增加 111 (修改器:$inc)
- who 改字段 sex (修改器:$rename)
- other 删除 (修改器:$unset)
语法分析:
db.c4.update({uname:"神龙教主"}, {uname: "webopenfather"}) #错误,替换{$set: {uname: "webopenfather"}}{$inc: {age: 111}}{$rename: {who: "sex"}}{$unset: {other: true}}留心如何一次性写多个修改器db.c4.update({uname:"神龙教主"}, {$set: {uname: "webopenfather"},$inc: {age: 111},$rename: {who: "sex"},$unset: {other: true} })
练习4:验证语法最后两个参数(了解)
- 【验证】是否新增true是false否:修改uname 等于 zs30的年龄 30岁
- 【验证】是否修改多条true是,false否默认
D删
- 语法:db.集合名.remove(条件 [, 是否删除一条] )
注意:是否删除一条 true是,false否 默认
小总结
高级开发攻城狮统称:所有数据库都需要增删改查CURD标识
MongoDB删除语法:remove
增Create
db.集合名.insert(JSON数据)
删Delete
db.集合名.remove(条件 [,是否删除一条true是false否默认])也就是默认删除多条
改Update
db.集合名.update(条件, 新数据 [,是否新增,是否修改多条])升级语法db.集合名.update(条件,{修改器:{键:值}})
查Read
db.集合名.find(条件 [,查询的列])
[MongoDB] MongoDB的基本操作以及文档的增删改查相关推荐
- java jdom进行xml的增删改差_java使用DOM对XML文档进行增删改查操作实例代码
本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示. 源代码: package com.zc.homeWork18; import java.io.File; ...
- 分布式搜索elasticsearch 索引文档的增删改查 入门
分布式搜索elasticsearch 索引文档的增删改查 入门 1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful ...
- 1月16日学习内容整理:存储库MongoDB之文档的增删改查操作补充
文档操作 一.查 1.比较运算 # SQL:=,!=,>,<,>=,<= # MongoDB:{key:value}代表什么等于什么,"$ne"," ...
- es内嵌文档查询_ElasticSearch 文档的增删改查都不会?
本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义. 我们先来看下这个表: 这个表包含了 Index.Create.Read. ...
- 学生的新增mySQL文档_MySQL增删改查
连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...
- mongodb对数组元素及内嵌文档进行增删改查操作(转)
from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: &l ...
- MongoDB快速上手、windows安装、常用命令、文档基本增删改查、mongoDB的索引
MongoDB快速上手 目标 理解MongoDB的业务场景.熟悉MongoDB的简介.特点和体系结构.数据类型等. 能够在Windows和Linux下安装和启动MongoDB.图形化管理界面Compa ...
- 【elasticsearch】文档 CRUD 增删改查 以及 相关 参数
1.概述 转载:https://mp.weixin.qq.com/s/aOZnZpAC4c_dYkVW8DfNPg 在Elasticsearch中,文档(document)是所有可搜索数据的最小单位. ...
- ElasticSearch~ES文档操作~对文档的增删改查
一.新增文档 一.指定文档ID:手动指定ID POST可以不指定ID,会自动生成ID POST /teacher/_doc/1001 {"name":"李四", ...
最新文章
- android与单片机wifi通信原理图,用LT8920做2.4G无线通信原理图与51单片机程序
- 程序猿真成猴了? | 每日趣闻
- UNITY 打APK是如何确定哪些资源有用哪些无用的
- 根本不存在 DIV + CSS 布局这回事
- 用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...
- 递归和分治的概念性的理解
- fir fpga 不同截止频率_一种新的FIR滤波器系数量化方法
- 领域应用 | 阿里发布藏经阁计划,打造 AI 落地最强知识引擎
- linux u盘刻录软件,Deepin Linux下刻录Windows安装U盘:WoeUSB的介绍和应用
- 离散数学 习题篇 —— 等价关系的计数
- 幻灯片插入smartArt
- scratch做了个病毒大战的游戏,欢迎朋友们试玩,多提意见
- 编译原理(整体理解)
- ObjectARX开发(自定义块以及属性的获取)
- 读《乔布斯的魔力演讲》
- php 微信 图片 文字 朋友圈,朋友圈实现图片+文字转发功能(必看篇)
- 【数据安全案例】案例汇总
- 转至老熊三分地--inside sqlplus prelim
- 华为与复旦大学合作开发全国首个医学人工智能课程
- Nginx 反向代理,提供 http 访问,代理 https 外站内容
热门文章
- find python列表_Python基础知识(7)list列表各种操作
- java nslookup_nslookup使用教程
- 6*6行列式相加的c语言,求行列式的值,用C语言怎么写啊?
- pechakucha范例ppt_国际创意论坛
- keras添加正则化全连接_第16章 Keras使用Dropout正则化防止过拟合
- python animation set data_imshow.set_数据()不适用于FuncAnimation
- react中redux的store.js样板文件
- Objective-C 日记④ 集合家族
- 双路由器双小型交换机组建公司网络,2个公网IP上网案例(转载)
- @Service注解的作用