zoukankan      html  css  js  c++  java
  • 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

    Hold on, everything is possible.
  • 相关阅读:
    eworkflow,eform,ebiao和信息系统的集成过程(for dotnet)
    HTTP协议详解
    phpstudy安装好之后mysql无法启动(亲测可行)
    关于在phpStudy环境下,windows cmd中 php不是内部命令问题
    php 中使用cURL发送get/post请求,上传图片,批处理
    Laravel 5.4: 特殊字段太长报错 420000 字段太长
    请自行检查是否安装VC9运行库??
    一起谈.NET技术,舍WebService 用.NET4中jQuery调用WCF 狼人:
    一起谈.NET技术,Silverlight 游戏开发小技巧:昼夜交替动画 狼人:
    一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(一)序言 狼人:
  • 原文地址:https://www.cnblogs.com/student-note/p/6189526.html
Copyright © 2011-2022 走看看