参考视频

链接: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的基本操作以及文档的增删改查相关推荐

  1. java jdom进行xml的增删改差_java使用DOM对XML文档进行增删改查操作实例代码

    本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示. 源代码: package com.zc.homeWork18; import java.io.File; ...

  2. 分布式搜索elasticsearch 索引文档的增删改查 入门

    分布式搜索elasticsearch 索引文档的增删改查 入门 1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful ...

  3. 1月16日学习内容整理:存储库MongoDB之文档的增删改查操作补充

    文档操作 一.查 1.比较运算 # SQL:=,!=,>,<,>=,<= # MongoDB:{key:value}代表什么等于什么,"$ne"," ...

  4. es内嵌文档查询_ElasticSearch 文档的增删改查都不会?

    本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义. 我们先来看下这个表: 这个表包含了 Index.Create.Read. ...

  5. 学生的新增mySQL文档_MySQL增删改查

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...

  6. mongodb对数组元素及内嵌文档进行增删改查操作(转)

    from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: &l ...

  7. MongoDB快速上手、windows安装、常用命令、文档基本增删改查、mongoDB的索引

    MongoDB快速上手 目标 理解MongoDB的业务场景.熟悉MongoDB的简介.特点和体系结构.数据类型等. 能够在Windows和Linux下安装和启动MongoDB.图形化管理界面Compa ...

  8. 【elasticsearch】文档 CRUD 增删改查 以及 相关 参数

    1.概述 转载:https://mp.weixin.qq.com/s/aOZnZpAC4c_dYkVW8DfNPg 在Elasticsearch中,文档(document)是所有可搜索数据的最小单位. ...

  9. ElasticSearch~ES文档操作~对文档的增删改查

    一.新增文档 一.指定文档ID:手动指定ID POST可以不指定ID,会自动生成ID POST /teacher/_doc/1001 {"name":"李四", ...

最新文章

  1. android与单片机wifi通信原理图,用LT8920做2.4G无线通信原理图与51单片机程序
  2. 程序猿真成猴了? | 每日趣闻
  3. UNITY 打APK是如何确定哪些资源有用哪些无用的
  4. 根本不存在 DIV + CSS 布局这回事
  5. 用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...
  6. 递归和分治的概念性的理解
  7. fir fpga 不同截止频率_一种新的FIR滤波器系数量化方法
  8. 领域应用 | 阿里发布藏经阁计划,打造 AI 落地最强知识引擎
  9. linux u盘刻录软件,Deepin Linux下刻录Windows安装U盘:WoeUSB的介绍和应用
  10. 离散数学 习题篇 —— 等价关系的计数
  11. 幻灯片插入smartArt
  12. scratch做了个病毒大战的游戏,欢迎朋友们试玩,多提意见
  13. 编译原理(整体理解)
  14. ObjectARX开发(自定义块以及属性的获取)
  15. 读《乔布斯的魔力演讲》
  16. php 微信 图片 文字 朋友圈,朋友圈实现图片+文字转发功能(必看篇)
  17. 【数据安全案例】案例汇总
  18. 转至老熊三分地--inside sqlplus prelim
  19. 华为与复旦大学合作开发全国首个医学人工智能课程
  20. Nginx 反向代理,提供 http 访问,代理 https 外站内容

热门文章

  1. find python列表_Python基础知识(7)list列表各种操作
  2. java nslookup_nslookup使用教程
  3. 6*6行列式相加的c语言,求行列式的值,用C语言怎么写啊?
  4. pechakucha范例ppt_国际创意论坛
  5. keras添加正则化全连接_第16章 Keras使用Dropout正则化防止过拟合
  6. python animation set data_imshow.set_数据()不适用于FuncAnimation
  7. react中redux的store.js样板文件
  8. Objective-C 日记④ 集合家族
  9. 双路由器双小型交换机组建公司网络,2个公网IP上网案例(转载)
  10. @Service注解的作用