MongoDB 表(集合) 创建删除、数据增删改查
MongoDB 表(集合) 创建删除和增删改查数据
创建一个集合(emp)
在创建集合之前先使用use xxx,选择数据库,如果没有会创建(并不是真正的创建,只有在数据库里面保存集合数据之后才能够真正创建数据库)
当真正创建完集合之后,这个时候mydb数据库才会真正的存在
db.createCollection("emp") //创建默认集合
还可以创建指定参数的集合
db.createCollection("emp2", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } ) //创建指定参数集合
capped:Boolean (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。
autoIndexId:Boolean (可选)如果为true,_id字段自动创建索引,默认值是false,慎用false,因为会导致同步数据时负载很高,建议设置为true。
size number:(可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。
max number:(可选)指定封顶集合允许在文件的最大数量。
但是很多时候如果按照以上的代码形式进行会觉得不正常,因为正常情况下使用MongoDB数据库集合操作的时候都是直接向里面保持一个数据,使用这种方式会自动创建集合
db.teacher.insert({"hetao":"php"}) //自动创建名为teacher的数据集,里面有一条键值对
查询所有集合
show collections
查看表(集合)的数据
语法:db.集合名称.find({若干条件})
从传统的数据表来看(集合就相当于表的结构),表的结构一旦定义就必须按照其定义的要求进行内容的编写,但是mongodb不一样,他可以自己随意扩充数据
在dept表中增加不规则数据
此时dept集合的内容可以由用户随便去定义,完全不用考虑其他的结构,那么实际上就必须明确一定了,在MongoDB数据库里面是绝对不可能存在有查看集合结构的操作
关于id的问题
在MongoDB集合中的每一行记录都会自动生成一个:"_id" : ObjectId("59527a095d2e7428aedd16e6"),数据的组成是:时间戳+机器码+进程的PID+计数器(这个ID信息是MongoDB数据库自己为用户生成的)
查看单独的一个文档信息
也就是查看集合里的第一条数据(不传参数默认是第一条,并且只有一条)
根据id删除数据(删除一行)
删除符合条件的第一个条数据
db.mycol.remove({'title':/MongoDB/},1) //只删除符合条件的第1条记录
全表清空
db.mycol.remove({}) //全表清空
根据id更新数据
更新后的数据完全按照更新时的的数据结构
删除集合
语法:db.集合名称.drop(),删除集合之后再查看这个集合的表的数据,不会报错,没有任何提示
删除当前所在的数据库
这个命令表示删除当前所在的数据库,必须先切换到数据库后才可以删除
增加数据操作语法
使用 db.集合名称.insert() 可以实现数据的增加操作,增加数据操作之前先使用数据库
这时候并没有创建mldn的这个数据库,需要插入数据或者创建一个集之后,这个数据库才会被创建,然后我们新增一个简单的数据
以数组形式增加多条数据
这种方式提示也是一下子增加多个数据的方式,如果想要保存多个数据,那么就使用数组的形式
增加多个数据
如果数据保存很多的情况下,列表是不会全部列出,只会列出部分的内容
复杂的数据查询
数据查询简介
MongoDB数据库中,对于查询的支持非常到位,包含有关系运算;逻辑运算;数组运算;正则运算等等
对于数据的查询操作核心的语法:db.集合名称.find({查询条件},[{设置显示的字段}]);
增加查询条件(根据某个字段的值进行查询)
发现在进行数据查询的时候也是按照JOSN的形式设置的相等关系,它的整个开发过程中都不可能离开JSON数据
设置显示字段
对于设置的显示字段严格来讲就称为数据的投影操作,如果不需要显示的字段设置为0而需要显示的字段设置为1
不设置的默认是显示,大部分的情况下,这种投影操作的意义不大,同时对于数据的查询也可以使用 pretty()函数
pretty()函数查询
数据列多的时候,可以查询出来更好看的列表格式
查询单个数据
不加查询条件,默认查询出来的是集合中的第一条数据
数据查询(关系运算)
在MongoDB中支持的关系查询操作:大于($gt);小于($lt);大于等于(>e);小于等于($lte);不等于($ne);等于(key:value)
但是要想让这些操作可以正常使用,那么需要准备出一个数据集合,定义一个学生信息集合
等于(key:value):查询name为蜜蜜的那条数据
查询sex为女的数据
大于($gt):查询age大于21的数据
小于($lt)
小于等于($lte)
不等于($ne):查询nmae不等于蜜蜜的数据
数据查询(逻辑运算)
逻辑运算主要有三种类型:与($and);或($or);非($not/$nor)
与($and):查询age在19到25之间的数据,可以使用关系运算的多条结合
或($or)查询age大于19或者score大于90的数据
数据查询(模运算)
模运算使用 $mod 来完成
数据查询(模运算)示例:表示结果是20,余数是0
表示结果是20,余数是1
数据查询(范围运算)
$in(在范围之中);$nin(不在范围之中) 查询name是”张三,蜜蜜,多多”的数据
不在范围之中
MongoDB 表(集合) 创建删除、数据增删改查的更多相关文章
- Django中ORM表的创建以及基本增删改查
Django作为重量级的Python web框架,在做项目时肯定少不了与数据库打交道,编程人员对数据库的语法简单的还行,但过多的数据库语句不是编程人员的重点对象.因此用ORM来操作数据库相当快捷.今天 ...
- jQuery实现表的编辑删除添加(增删改查)🌚
代码 : (用到了bootstrap里面的全局css样式和组件,毕竟一把梭.
- 第二百七十七节,MySQL数据库-数据表、以及列的增删改查
MySQL数据库-数据表.以及列的增删改查 1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNO ...
- C#操作Excel数据增删改查(转)
C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...
- C#操作Excel数据增删改查示例
Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...
- salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...
- 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建 VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...
- mongodb的学习笔记一(集合和文档的增删改查)
1数据库的增删改查 一.增加一个数据库: use blog-----切换到指定的数据库,如果数据库不存在,则自动创建该数据库(新建的数据库,如果没有存储对应的集合,是不会显示出来的) 二.删除一个数据 ...
- MongoDB系列(三):增删改查(CURD)
上篇讲了MongoDB的基础知识,大家应该对MongoDB有所了解了,当然真正用的还是curd操作,本篇为大家讲解MongoDB的curd操作. 1.数据库操作 #.增 use config #如果数 ...
随机推荐
- 作用域插槽模板迭代的次数,取决于组件内部独立slot的数量
第一种情况:内部有两个独立插槽(模板自动迭代2次) <!DOCTYPE html> <html> <head> <title> hello world ...
- SpringMVC+SpringBoot+MyBatis
一.在框架中有时候会发现dao层和service层是相同的代码,为什么会同时存在呢?(以下https://blog.csdn.net/fanjieshanghai/article/details/88 ...
- ES读写索引内幕分析
一.简介 ES中的索引都进行分片,每个分片都会保存多个副本.这些副本称为复制组,在添加或删除索引时必须同步副本.如果不这样,从不同的副本中读取的索引可能截然不同.保持分片副本同步并从中提供读取的过程被 ...
- MySQL NULL--三值逻辑(Three Value Logic)
三值逻辑(Three Value Logic) 在关系型数据库中,由于NULL值的存在,导致逻辑表达式存在三种值:TRUE/FALSE/UNKNOW. SELECT '=NULL AS C1, ' A ...
- Mybatis环境搭建:自学随笔
环境:IDEA MySQL 1.建立maven工程,导入坐标:编辑pom.xml,建立mybatis约束. 在https://mybatis.org/mybatis-3/zh/getting-sta ...
- docker 安装 oracle
docker 安装 oracle 部署链接:https://www.linuxidc.com/Linux/2017-03/141760.htm 本次使用docker安装oracle 1.搜索可使用的镜 ...
- Windows Cmd 命令管理服务
今天在Windows 干净环境上安装软件过程中,安装完成后,发现部署在IIS 上的网站无法使用,提示 "您提交的参数有误!,请重新提交" 纯净的windows 7 x64位环境, ...
- AS项目报错 Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
1 修改gradle的缓存目录 这个可以通过android studio的设置中找到gradle,配置另一个非中文目录来缓存. File -> Settings -> Build, Exe ...
- unicode转换为中文
unicode转换为中文 \u5f53\u5730\u65f6\u95f42019\u5e747\u670813\u65e5\uff0c\u82f1\u56fd\u8d1d\u5fb7\u798f\u ...
- [转] C++ explicit关键字详解
本文转自tiankong19999 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是impl ...