zoukankan      html  css  js  c++  java
  • MongoDB:好好说说mongodb的增删改查

    一、insert操作:

    mongodb的每一行(文档,上篇文章说的mongodb的三要素之一)都是采用K-V的方式存储的,对json熟悉的童鞋学mongodb肯定是手到擒来,对于Value,可能是个字符串,也可能是个数组,又可能是一个内嵌的json对象,相同的规则同样适用于BSON。

    插入操作常见的有两种方式,单条插入和批量插入:

    1、单条插入:

    var single={"name":"chenglong","password":"12345","age":20,"address":{"province":"anhui","city":"hefei"},"favourite":["apple","banana"]}
    
    db.user.insert(single)
    db.user.find()

    可以直接声明对象,是不是蛮diao的!


    2、批量插入,批量插入的方法和单条唯一的区别是,你可以写个for循环,里面放入insert语句。就这么简单。


    二、find操作

    平时的开发中,我们经常使用的查询操作,一般都是下面两种:

    1、>     >=    <    <=   !=    =

    2、and  or    in     notin

    可喜的是,这些操作在mongodb中已经封装好了,做开发的都喜欢这种,拿来用就是:

    <1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面1是一一对应的,代码

    >
    db.user.find({"age":{$gt:19}})
    
    >=
    db.user.find({"age":{$gte:19}})
    
    <
    db.user.find({"age":{$lt:22}})
    
    <=
    db.user.find({"age":{$lte:22}})
    
    !=
    db.user.find({"age":{$ne:22}})

    <2> "无关键字“, "$or", "$in","$nin" 代码:

    and  无关键字
    db.user.find({"name":"chenglong","age":20})
    
    or
    db.user.find({$or:[{"address.province":"anhui"},{"address.province":"hunan"}]})
    
    in
    db.user.find({"address.province":{$in:["anhui","guangdong"]}})
    
    nin
    db.user.find({"address.province":{$nin:["anhui","guangdong"]}})


    <3>,另外mongodb还能匹配正则表达式,真的很强大!

    正则表达式
    /* find name startwith 'c' and endwith 'g' */
    
    db.user.find({"name":/^c/,"name":/g$/})



    <4>,查询很复杂的时候,我们还可以用$where来作为我们的大招,因为where中的value,可以放我们js中的方法体!

    让我们查找‘chenglong’

    $where
    /* find name="chenglong" */
    
    db.user.find({$where:function(){return this.name=='chenglong'}})



    三、update操作

    update操作也是无非就两种,整体更新和局部更新!

    <1>,上篇文章中,我们所用的更新,其实就是整体更新。

    整体更新
    var upd=db.user.findOne({"name":"chenglong"})
    upd.age=30
    db.user.update({"name":"chenglong"},upd)
    db.user.find()

    <2>,局部更新

    有时候我们只需要更新一个字段,mongodb中已经给我们提供了两个   修改器: $inc 和 $set。

     $inc修改器

            1、 $inc也就是increase的缩写,学过sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在原有的基础上

        自增$inc指定的值,如果“文档”中没有此key,则会创建key,下面的例子一看就懂。

    db.user.update({"name":"chenglong"},{$inc:{"age":30}})
    db.user.find()


    2、$set修改器

    $set修改器
    db.user.update({"name":"chenglong"},{$set:{"age":10}})
    db.user.find()



    <3> upsert操作

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

    upsert操作
    db.user.update({"name":"chenglong"},{$inc:{"age":11}},true)

    四、remove操作

    我的上一篇文章已经写了,都是一样的,请参考:http://blog.csdn.net/jessonlv/article/details/17374677

    原创文章,转载请注明出处:http://blog.csdn.net/jessonlv

    另外自己做了个网站:爱玩意儿亲子健康网:http://www.aiwanyier.cn


  • 相关阅读:
    centos7下升级SSH
    docker: read tcp 192.168.7.235:36512->54.230.212.9:443: read: connection reset by peer.
    Rancher学习笔记----在UI界面添加主机页面无法正常显示
    Rancher3----安装部署rancher
    Rancher2-----了解什么是rancher以及简单部署
    unity坑-编译错误
    游戏UI系统设计
    使用采样器声明
    着色器数据类型和精度
    着色器编译目标等级
  • 原文地址:https://www.cnblogs.com/jessonlv/p/4388008.html
Copyright © 2011-2022 走看看