数据库的操作一般来说都是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 快速入门--初级的更多相关文章

  1. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  2. MongoDb 快速入门教程

    文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...

  3. MongoDB快速入门指南与docker-compose快体验

    MongoDB快速入门指南与docker-compose快体验 MongoDB相对于RDBMS的优势 模式少 -MongoDB是一个文档数据库,其中一个集合包含不同的文档.一个文档之间的字段数,内容和 ...

  4. [你必须知道的NOSQL系列]专题一:MongoDB快速入门

    一.前言 现在越来越多的公司开始采用非关系数据库了,并且很多公司的面试都要求面试者有MongoDB的使用经验,至于非关系数据库与关系型数据库之间的区别大家可以自行百度.但是作为程序员的我们,既然大部分 ...

  5. MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门

    [引言] 毕竟现在MongoDB还是出于成长阶段,所以现在网上相关的资料很少,而且大部分还都是针对于MongoDB的老版本的.再加上MongoDB的频繁升级.重大更新等等,导致菜鸟学习的难度增大. 好 ...

  6. MongoDB快速入门教程 (3.2)

    3.2.索引 索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,建立索引,通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条 ...

  7. 前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装

    数据库总的来说,分为两个方向:关系数据库和非关系数据库.我们常见的MySQL.Oracle.SQLSerever以及IBMDB2都是属于关系数据库,这里的关系值得是二维表的结构,但是由于随着web的应 ...

  8. MongoDB 快速入门--高级

    引用 --------->DBRefs DBRef的形式: { $ref : , $id : , $db : } $ref:集合名称 $id:引用的id $db:数据库名称,可选参数 { &qu ...

  9. MongoDB 快速入门--中级

    索引 ensureIndex 用来创建索引,需要注意的就是一个集合最多也就64个索引 如果没加所有就是表扫表,速度很慢, 当然如果索引的键有多个,就必须考虑顺序 拓展索引 同样的也可以为内嵌文档 建立 ...

随机推荐

  1. linux 定时任务调度Cron的用法详解

    在linux中,推荐使用crontab -e命令添加自定义的任务,退出后重启crond进程. 重新启动cron服务或重新加载cron配置,命令: 复制代码代码示例: /etc/rc.d/init.d/ ...

  2. 物联网操作系统HelloX V1.78测试版正式发布

    经过HelloX开发团队近四个月的努力,在HelloX V1.77版本基础上,增加许多功能特性,并对V1.77版本的一些特性进行了进一步优化之后,正式形成HelloX V1.78测试版本,经相对充分的 ...

  3. 最简单的视音频播放示例6:OpenGL播放YUV420P(通过Texture,使用Shader)

    本文记录OpenGL播放视频的技术.上一篇文章中,介绍了一种简单的使用OpenGL显示视频的方式.但是那还不是OpenGL显示视频技术的精髓.和Direct3D一样,OpenGL更好的显示视频的方式也 ...

  4. Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接

    最近的项目是微信公众号平台的开发,微信官方给出的Demo是PHP的,发现大部分的学习资料也是PHP,那好吧,放弃Java,来段儿PHP吧 下面说说Mac下搭建PHP环境 数据库:MySQL-5.6.2 ...

  5. 【转】UITableView详解(UITableViewCell

    原文网址:http://www.kancloud.cn/digest/ios-1/107420 上一节中,我们定义的cell比较单一,只是单调的输入文本和插入图片,但是在实际开发中,有的cell上面有 ...

  6. 【转】pdf 中如何把几页缩小成一页打印

    我用的是Foxit PDF Reader,可以这样设置:文件-打印-打印处理下的页面排列选择“在每张纸上放置多页”-选择每页版数即可. 如果你用的是Adobe Reader,也可以自己找一下,看是否有 ...

  7. Android学习笔记一

    一.eclipse中的十大快捷键: 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的 ...

  8. hdu 2845(dp基础题)

    题意:容易理解. 分析:以后碰到这种类型的题,就要考虑把矩阵先按行来处理,再按列处理.先算出每行能够能够得到的最大值,然后按列处理即可. 代码实现: #include<stdio.h> # ...

  9. util-判断当前年份所处的季度,并返回当前季度开始的月份

    ylbtech-funcation-util:  判断当前年份所处的季度,并返回当前季度开始的月份 判断当前年份所处的季度,并返回当前季度开始的月份. 1.A,Ylbtech.Model返回顶部 us ...

  10. C++重要知识点小结---1

    1.C++中类与结构的唯一区别是:类(class)定义中默认情况下的成员是private的,而结构(struct)定义中默认情况下的成员是public的. 2. ::叫作用域区分符,指明一个函数属于哪 ...