mongodb学习(二)

来源:互联网 发布:网络大电影转化率 编辑:程序博客网 时间:2024/04/28 02:34

       现在谈论一下复杂点的“增删改查”。“文档”是采用“K-V”格式存储的。Json里value可能是字符串,也可能是数组,也有可能是内嵌的一个json对象。相同的方式也适用于Bson。常见的两种插入就是单条插入和批量插入。

一、Insert插入

      ①:单条插入

             之前说了,mongo命令打开的也是一个js shell。所以js语法在这里也行的通。

             var  temp={“name”:"bob","password":"12345","age":21,"address":{"province":"jiangxi","city":"nanchang"},"favourite":["apple","banana"]}

             db.user.insert(temp)

 

             temp.name="jay"

             temp.age=25

             temp.address={"province":"taiwan","city":"tainan"}

             temp.favourite=["money","dance"]

             db.user.insert(temp)

 

           查询2条记录。

    ②:批量插入

             mongodb里没有提供批量查询的方法,我们可以采用for循环的方式进行批量插入。

二、Find操作

       平常我们查询,用的最多就是

                                                >            >=         <        <=       !=                   =                         And          OR          In             NotIn

      在mongodb里面对应   $gt         $gte      $lt      $lte    $ne   “没有特殊关键字"  "无关键字"      "$or"       "$in"         "$nin"

 

     db.user.find({"age":{$lt:22}})                                age>22

     db.user.find({"age":{$lt:22}})                                age<22

     db.user.find({"age":{$gte:22}})                            age>=22

     db.user.find({"age":{$lte:22}})                             age<=22

     db.user.find({"age":{$ne:22}})                             age!=22

     db.user.find({"age":"22"})                                    age==22

     db.user.find({"name":"jay","age":20})                name=jay&&age=20

     db.user.find({$or:[{"address.province":"jiangxi"},{"address.province":"guangdong"}]})             address,province=jiangxi or  address.province=guangdong

     db.user.find({"address.province":{$in:["jiangxi","guangdong"]}})                                                    address.province in  ["jiangxi","guangdong"]

     db.user.find({"address.province":{$nin:["jiangxi","guangdong"]}})                                                  address.province not in  ["jiangxi","guangdong"]


      mongodb正则表达式匹配

                  db.user.find({"name":/^j/,"name":/e$/})

     $where结合js

             db.user.find({$where:function(){return this.name=='jack'}})

三、update操作

       更新包括整体更新和局部更新。

       var  model=db.user.findOne({"name":"jack"})

       model.age=30

       db.user.update({"name":"jack"},model)

    ①:$inc修改器

            $inc也就是increase的缩写,每次修改会在原有的基础上自增$inc指定的值。如果文档中没有此key,则会创建key

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

   ②:$set修改器

           db.user.update({"name":“jacak”},{$set:{"age":10}})

   ③upsert操作

         这个是mongodb创造的“词”,这个操作就是说:如果我没有查询到,我就在数据库里面增加一条,好处就是:避免了我在数据库里面判断是update还是add操作。

将update的第三个参数设为true即可。

           db.user.update({"name":"kobe"},{$inc:{"age":34}},true)

        ④:批量更新

              在mongodb中如果匹配多条,默认情况下只更新第一条,那么如果我们有需求必须批量更新,只需将update的第四个参数中设为true即可。

四、Remove操作

0 0