mongodb系列之操作篇

这篇主要介绍下mongodb的基础操作。

1、create

     (1)、创建数据库,创建表:mongodb不需要这些创建操作,看我存储篇中举的例子。

     (2)、创建索引 :

     db.user.ensureIndex({'name': 1});
      // 创建子文档索引
     db.user.ensureIndex({'addr.mobile': -1});
      // 创建复合索引
     db.user.ensureIndex({
           'name': 1, // 升序
           'sex': -1 // 降序
      });
 
如果已经为子键创建了索引,那么其包含的子文档就不需要索引了,例如已经创建addr的索引,就不需要创建addr.mobile的索引了 db.user.ensureIndex( { addr: 1 } ); 
创建唯一索引:
     db.user.ensureIndex({
           'name': 1,
            // 指定为唯一索引
           'unique': true,
            // 删除重复记录
           'dropDups': true
     });

同样可以创建地理空间索引,db.places.ensureIndex( { loc : "2d" } ) 


2、drop

     

3、find

     mongodb系列之操作篇_第1张图片

注:筛选的时候默认包含_id,如果需要让返回的数据不包含_id,db.user.find({},{name:1,age:1,_id:-1})


4、insert

      

 注:如果没有传入_id,mongodb会自动生成_id,_id是一个ObjectId对象,结构如下
      


5、update

       db.collection.update( criteria, objNew, upsert, multi )
       upsert和multi参数可选,upsert表示是否开启upsert模式(文档存在时更新,不存在时自动创建);multi表示是否开启多multi模式(默认情况下update操作只会更新第一个匹配到的文档,如果开启multi模式,则会更新所有匹配到的文档。

       mongodb系列之操作篇_第2张图片

       $inc 增加或减少数字的值,键不存在时会自动创建
       $set 设置指定键的值,键不存在时会自动创建
       $unset $set的反操作,会删除键及键值
       $push 将元素追加到数组末尾,数组不存在会自动创建
       $pushAll $push的批量操作版本
       $addToSet 同$pushAll,但会自动过滤重复元素
       $pop {$pop : {key :  1}}——从数组末尾移除元素
       {$pop : {key : -1}}——从数组开头移除元素
       $pull 从数组中移除所有匹配的元素
       $pullAll $pull的批量操作版本
       $rename 修改指定键的键名
       $bit 对整形键值执行位操作“与”、“或”等


6、delete

       


更多高级用法请查看mongodb的官方文档。

你可能感兴趣的:(mongodb系列之操作篇)