MongoDB 快速入门--初级
数据库的操作一般来说都是CRUD,这其中最难的就是查询,所有所我们先来了解MongoDB中的
插入(insert)
说到插入,我们就必须得说说如何创建数据库,如何创建集合,然后才是如何创建文档.
在这里说到的集合也就是关系型数据库中的表(Table),文档也就是(Row).
现在我们要做的就是创建一个Flast数据库,创建一个m集合,然后插入一个文档.

更新(Update)
先来看简单的更新:
我们现在想要把name:"xu"变成name:"joe",age:23

我们可以看到用红色框表明的那三个属性
nMatched:表示的是捕获的数量
nUpserted:表示的是插入的数量
nModified:表示的是修改的数量
现在我们来看看Update的真正语法
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,(false)是否在不存在的时候插入
multi: <boolean>,(false)是否多选
writeConcern: <document>异常级别
}
)
为了演示上面这三个可选参数并说明更新后的参数,我们需要添加一个文档

演示第一个 upsert(false)

演示第二个 multi(false)

于是有了下面的代码:

从上面我们也可以看到捕获到了两条,修改了两条,
我们还可以使用findAndModify命令来修改

使用这个命令我们就可以很清楚的看出哪些文档被修改了,当然并不推荐这个,损耗性能
顺便介绍一下"findAndModify"都有哪些命令:
>query 查询语句
>update 更新语句,只能更新找到的第一条语句

>remove (boolean)是否删除
>new (boolean) 代表是返回更新前的还是更新后的,默认是更新前的,从上面的value就可以看出来

(删除)Remove
删除当然是比较简单的呐,直接看语法吧!
db.collection.remove(
<query>,(可选)删除的文档的条件
{
justOne: <boolean>,(可选)如果设为 true 或 1,则只删除一个文档。
writeConcern: <document>(可选)抛出异常的级别。
}
)
来看下例子

(查询)find
查询一般都是最难的部分,因为有许多的逻辑,我们从最简单的学起:
比如我们想查询name="jack"的文档

当然对应的还有findOne()用来返回找到的第一条

可以看到我们什么都没有找到,不过我相信有了上面的修改对这个一定是可以理解的,
我们重点是来了解 $指令
常用的的添加指令有 $lt,$lte,$gt,$gte,$in,$nin,$or,$exists,$not,$all,$size,$slice
下面来讲讲他们的用法.
$lt(小于),$gt(大于)


当然啦这两个也是可以一起来用的!

在这里就不再演示$lte,$gte啦
$in,$or
直接上图

相对应的就是$nin

最后就是$or啦,顾名思义就知道他是满足一个就匹配,不多说上图

当然也可以联合这两个来一起查询

$exists,判断一个元素是否存在
为了测试我们先添加几条数据


接下来我们查询name=null的文档

正确的查询方式是这样的

$all,$size,$slice 只适合查询数组






$elemMatch



$where


游标

limit,skip,sort
分别对应的就是限制结果数量,跳过,排序



下面贴出集合总元素

这说明了这三个查询选项的顺序是 sort->skip->limit
MongoDB 快速入门--初级的更多相关文章
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- MongoDb 快速入门教程
文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...
- MongoDB快速入门指南与docker-compose快体验
MongoDB快速入门指南与docker-compose快体验 MongoDB相对于RDBMS的优势 模式少 -MongoDB是一个文档数据库,其中一个集合包含不同的文档.一个文档之间的字段数,内容和 ...
- [你必须知道的NOSQL系列]专题一:MongoDB快速入门
一.前言 现在越来越多的公司开始采用非关系数据库了,并且很多公司的面试都要求面试者有MongoDB的使用经验,至于非关系数据库与关系型数据库之间的区别大家可以自行百度.但是作为程序员的我们,既然大部分 ...
- MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
[引言] 毕竟现在MongoDB还是出于成长阶段,所以现在网上相关的资料很少,而且大部分还都是针对于MongoDB的老版本的.再加上MongoDB的频繁升级.重大更新等等,导致菜鸟学习的难度增大. 好 ...
- MongoDB快速入门教程 (3.2)
3.2.索引 索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,建立索引,通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条 ...
- 前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装
数据库总的来说,分为两个方向:关系数据库和非关系数据库.我们常见的MySQL.Oracle.SQLSerever以及IBMDB2都是属于关系数据库,这里的关系值得是二维表的结构,但是由于随着web的应 ...
- MongoDB 快速入门--高级
引用 --------->DBRefs DBRef的形式: { $ref : , $id : , $db : } $ref:集合名称 $id:引用的id $db:数据库名称,可选参数 { &qu ...
- MongoDB 快速入门--中级
索引 ensureIndex 用来创建索引,需要注意的就是一个集合最多也就64个索引 如果没加所有就是表扫表,速度很慢, 当然如果索引的键有多个,就必须考虑顺序 拓展索引 同样的也可以为内嵌文档 建立 ...
随机推荐
- 安装IIS之后运行aspx 显示“服务器应用程序不可用” 解决办法
引起这个的原因大概是现安装了.Net Framework,后装的IIS导致.Net没有在IIS里注册. 另外,还有可能是ASPNET账户没有IIS所指定服务器目录的权限.在资源管理器中找到“工具-文 ...
- I.MX6 Ethernet UI patch failed
/*********************************************************************** * I.MX6 Ethernet UI patch f ...
- 使用D3D渲染YUV视频数据
源代码下载 在PC机上,对于YUV格式的视频如YV12,YUY2等的显示方法,一般是采用DIRECTDRAW,使用显卡的OVERLAY表面显示.OVERLAY技术主要是为了解决在PC上播放VCD而在显 ...
- 【转】从INF文件认识驱动
在工控机安装xp操作系统时,由于工控机的集成显卡驱动只支持win7,之前没接触过windows驱动相关内容,折腾了半天.下载的驱动是exe的,双击安装就提示安装失败(未签名) 上图是网上随便找的,现象 ...
- 【c++内存分布系列】单独一个类
首先要明确类型本身是没有具体地址的,它是为了给编译器生成相应对象提供依据.只有编译器生成的对象才有明确的地址. 一.空类 形如下面的类A,类里没有任何成员变量,类的sizeof值为1. #includ ...
- Hilbert先生旅馆的故事
以前上实变函数的时候稍微讲了下这个故事呢. 来自Hansschwarzkopf 很久很久以前,在欧洲某国的一个小镇上,Hilbert先生开了一家拥有无数个房间的旅馆.一天,旅馆生意红火得一塌糊涂,不到 ...
- storm入门教程 第四章 消息的可靠处理【转】
4.1 简介 storm可以确保spout发送出来的每个消息都会被完整的处理.本章将会描述storm体系是如何达到这个目标的,并将会详述开发者应该如何使用storm的这些机制来实现数据的可靠处理. 4 ...
- history命令
在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令 ...
- Headmaster's Headache
题意: s门课程,现任老师有m个给出工资,和他们能教的课,现在有n个应聘的老师,给出费用和能教的课程标号,求使每门课都至少有两个老师教的最小花费 分析: n个老师选或不选有背包的特征,n很小想到用状压 ...
- IOS UINavigationController 操作相关集合
1.修改中间Title字体以及大小 [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dict ...