zoukankan      html  css  js  c++  java
  • 第二天 细说增删查改

      

      看过上一篇,相信大家都会知道如何开启mongodb,这篇就细说下增删查改,首先当我们用上一篇同样的方式打开mongodb,突然傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文件夹下有一个类似的“lock file”阻止了mongodb的开启,接下来我们要做的就是删除它,之后,开启成功,关于mongodb的管理方式将在后续文章分享。

    一、Insert操作

      上一篇也说过,文档是采用“K-V”格式存储的,我们知道JSON里面Value可能是“字符串”,可能是“数组”,又有可能是内嵌的一个JSON对象,相同的方式也适合于BSON

      常见的插入操作也就两种形式存在:单条插入和批量插入。

      ① 单条插入

           js语法在mongo中的命令行是相通的

        

      ② 批量插入 

              这玩意跟“单条插入”的差异相信大家应该知道,由于mongodb中没有提供给shell的“批量插入方法”,没关系,各个语言的driver都打通了跟mongodb内部的批量插入方法,因为该方法是不可或缺的,如果大家非要模拟下批量插入的话,可以自己写了for循环,里面就是insert

    二、Find操作 

      日常开发中,我们玩查询,玩得最多的也就是二类: 

      ① >、 >=<、 <=!=、 = 

      ② AndORInNotIn    

      (1)"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面的一一对应,eg

         

       (2)"无关键字“, "$or", "$in""$nin" 

          

       (3) mongodb中还有一个特殊的匹配:正则表达式

         

       (4) 特殊查询:$where,因为$where中的value就是我们非常熟悉,非常热爱的js来助我们一马平川。

        

      

    三、Update操作

       更新操作无非也就两种,整体更新和局部更新,使用场合相信大家也清楚。

       (1)整体更新

                不知道大家可还记得,我在上一篇使用update的时候,其实那种update是属于整体更新。

         

       (2)局部更新

          有时候我们仅仅需要更新一个字段,而不是整体更新,那么我们该如何做呢?

          easy的问题,mongodb中已经给我们提供了两个修改器:$inc 和 $set

          ① $inc修改器,$inc也就是increase的缩写

          

         ② $set修改器

                 啥也不说了,直接上代码 

             

       (3) upsert操作

           这个可是mongodb创造出来的“词”,大家还记得update方法的第一次参数是“查询条件”吗?,那么这个upsert操作就是说:如果我没有查到,我就在数据库里面新增一条,其实这样也有好处,就是避免了我在数据库里面判断是update还是add操作,使用起来很简单,update的第三个参数设为true即可。

         

       (4)批量更新

          在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单的,在update的第四个参数中设为true即可。例子就不举了。

      

    四、 Remove操作

        这个操作在上一篇简单的说过,这里就不赘述了。

       

  • 相关阅读:
    LOJ 6089 小Y的背包计数问题 —— 前缀和优化DP
    洛谷 P1969 积木大赛 —— 水题
    洛谷 P1965 转圈游戏 —— 快速幂
    洛谷 P1970 花匠 —— DP
    洛谷 P1966 火柴排队 —— 思路
    51Nod 1450 闯关游戏 —— 期望DP
    洛谷 P2312 & bzoj 3751 解方程 —— 取模
    洛谷 P1351 联合权值 —— 树形DP
    NOIP2007 树网的核
    平面最近点对(加强版)
  • 原文地址:https://www.cnblogs.com/chy2055/p/5145526.html
Copyright © 2011-2022 走看看