Mongodb学习(二)

来源:互联网 发布:北京鼎泰网络推广公司 编辑:程序博客网 时间:2024/05/29 03:34
          MongoDB常用操作
              1、创建数据库或者切换数据库,使用命令: use  database

                 use mymondb    在没有数据库mymondb的情况下会创建mymondb数据库,如果有mymondb数据库则切换到mymondb数据库下面!

                2、删除数据库 使用命令:db.dropDatabase()

                        db.dropDatabase()则会删除当前使用的数据库

                3、查看所有数据库,使用命令:show dbs  查看当前所在数据库,使用命令:db

                 4、创建数据库集合,有两种方式,分别为显式创建和隐式创建,这两种方式也不难理解,我的理解是显式创建就是先声明,在赋值,隐式创建就是声明的同时赋值,两种方式的使用方式如下:

               显式创建:db.createCollection("集合名称")

               隐式创建:db.集合名称.insert({})


                 5、查看当前数据库的所有集合,有两种命令

                          1、show collections

                           2、show tables 

                 6、向集合中添加文档,使用命令:db.集合名称.insert({文档内容}),例如向集合mdb中添加添加一条文档,db.mdb.insert({"name":"zhangsan","age":18})       

                 7、查询集合中的文档,使用方法 db.集合名称.find()或者db.集合名称.findOne(),两个命令的区别,find()查询查询所有的文档,findOne()是查询一个文档,默认查询第一个文档,如果需要传入查询条件,则把条件放入到方法中,例如,查询mdb中name为zhangsan的文档,db.mdb.find({"name":"zhangsan"}),使用findOne()命令查询年龄为25的文档,db.mdb.findOne({"age":25})

                 查询集合中的文档 有许多的表达式,关键字和函数可以使用,表达式(<, <=, >, >=,!=)的使用,以mdb集合中年龄为例

                      //年龄大于18: field > value
                      db.mdb.find({“age”:{$gt:18}});
                      //年龄小于19: field < value
                      db.mdb.find({"age":{$lt:19}});
                       //年龄大于等于18: field >= value
                      db.mdb.find({"age":{$gte:18}});
                      //年龄小于等于18: field <= value
                      db.mdb.find({"age":{$lte:18}});
                      //年龄不等于18:  field != value
                     db.mdb.find({"age":{$ne:18}});

            常用的函数:统计(count)、排序(sort)、分页(skip、limit)

               db.mdb.count();//查询集合的数量
               db.mdb.find().count();//查询集合的数量
               db.mdb.find({age:{$lt:5}}).count();//带条件查询集合的数量
               db.mdb.find().sort({age:1});//1:升序 -1: 降序
               db.mdb.find().skip(2).limit(3);
               db.mdb.find().sort({age:-1}).skip(2).limit(3);
               db.mdb.find().sort({age:-1}).skip(2).limit(3).count();
               db.mdb.find().sort({age:-1}).skip(2).limit(3).count(0);
               db.mdb.find().sort({age:-1}).skip(2).limit(3).count(1);

          常见关键字:
                $all
主要用来查询数组中的包含关系,查询条件中只要有一个不包含就不返回,不分数据的顺序和位置例如:查询mdb中num数组为[2,4,6,8]

                $in与$nin 两个表达式的使用,$in相当于关系型数据库中的in,只要满足表达式的条件就会查询出来,$nin与$in相反,值在表达式中的不查询出来


                 $or与$nor两个表达式的使用,$or相当于关系型数据库的or,即只要满足一个条件即可查询相出来,$nor与$or相反


                    $exists表达式,用于查询集合中存在某个键的文档或不存在某个键的文档,例如查询mdb集合中存在name键的所有文档,可以使用 db.mdb.find({name:{$exists:1}})
                    $exists:1  表示真,指存在
                    $exists:0  表示假,指不存在



                8、删除集合中的文档,使用方法db.集合名称.remove(),如果不传入参数,则删除改文档下所有的文档,例如:删除mdb集合中年龄为25的文档
db.mdb.remove({"age":25})


                 9、更新集合文档,语法为:db.collection.update(criteria,objNew,upsert,multi),参数说明:
                                             criteria:用于设置查询条件的对象
                                             objNew:用于设置更新内容的对象
                                             upsert:如果记录已经存在,更新它,否则新增一个记录,取值为0或1
                                             multi:如果有多个符合条件的记录,是否全部更新,取值为0或1
        注意:默认情况下,只会更新第一个符合条件的记录一般情况下后两个参数分别为0,1 ,即:db.collection.update(criteria,objNew,0,1)

              将集合mdb中姓名为zhangsan的更新为curry,db.mdb.update({"name":"zhangsan"},{"name":"curry"})

可以看出经过更新后,为更新的字段不见啦,原因是因为没有使用$set来指定更新哪个字段,没有使用$set,其实是新建了一个文档去覆盖了原来的文档,所以导致其他字段补间啦,使用$set来指定更新键的值,如果这个键不存在,则创建它。例如:更新集合mdb中name为zhangsan的文件,将name更新为curry,db.mdb.update({"name":"zhangsan"},{$set:{"name":"curry"}},0,1)


      $inc表示使某个键值加减指定的数值,例如:将mdb集合name等于curry的age+1;其他值不变,db.mdb.update({"name":"curry"},{$inc:{"age":1}},0,1)


         $unset 用来删除某个键,例如:删除mdb集合name为curry的age键。db.mdb.update({"name":"curry"},{$unset:{"age":1}},0,1)


到此,mongodb常用的操作命令就基本上学习完了!

0 0
原创粉丝点击