数据库系列之————mongodb基础

问题:mongodb作为一种非关系型数据库,有别于MySQL关系型数据库


Linux下的安装参考

windows下,图形化界面,不解释

1,启动:启动服务器和客户端在两个操作系统下基本一致

     以下是已经配置环境变量,如果没有配置环境变量需要进入到,安装目录/bin,目录下

        启动服务器:                

mongodb --dbpath=安装路径\data\db  #windows下

sudo ./mongodb --dbpath=安装路径\data\db #linux下

         启动客户端:

mongo

2,和SQL的对比

3,数据库操作(database)

     查看数据库:show dbs  或者  show databases(如果数据库中没有数据则不会显示)

     创建或切换数据库:use 数据库名  (没有的话会创建)

     查看当前use的数据库:db

     删除数据库:db.dropDatabase()

4,集合操作(collection)

     查看集合:show collections

     创建一个集合:db.createCollection("集合名")

                              db.集合名.insert({数据})    没有这个集合就会创建

     删除一个集合:db.集合名.drop()

5,文档操作(document)

       (1)插入数据

                1.1插入一条数据:db.集合名.insert({key:value,key:value})

                           1.2插入多条数据:db.集合名.insert([{key:value},{key:value}..])

                           与db.集合名.save({})   的区别:

                                      如果使用的是save,而且设置_id属性,且_id已经存在时, 此时save表示修改数据

                                      如果使用的是insert,而且设置_id属性,且_id已经存在时, 则insert会报错

                  (2)查询数据

                            查询所有数据:db.集合名.find()

                            指定条件查询:db.集合名.find(query,names)

                                                     query参数    如:   {age:76}  表示查询age = 76的数据
                                                     names参数  如:   {name:1,age:1} 表示只显示name属性和age属性,1表示显示,默认不显示

                            查询一条数据:db.集合名.findOne(query,names)

                             格式化查询:db.集合名.find().pretty()

                  (3)数据的修改

                             格式:db.集合名.update(query,set,{upsert:布尔类型,multi:布尔类型})
                                           query  查询条件
                                           set   要修改的属性和对应的属性

                                           upsert 表示在修改数据的时候,如果查询条件没有找到对应的数据,
                                                      是否将修改的内容当作新的数据添加到集合中
                                                      true 表示添加进来
                                                      false 表示不当作新数据添加进来
                                                      默认是false

                                           multi 表示在修改数据的时候,如果查询出了多条符合条件的数据,是否将多条数据全部进行修改
                                                      true 表示全部都修改
                                                      false 表示值修改匹配的第一条数据

                                                       默认是false

                    (4)删除数据:db.集合名.remove(query,{justOne:布尔值}

6,查询条件

        运算符:作为键key存在

              1,条件运算符

                      $gt,$lt , $eq , $ne , $gte ,$lte

                     年龄大于40小于60: db.student.find({age:{$gte:40,$lte:60}})

              2,逻辑运算符

                       and     or    not

                     年龄大于40小于60:db.student.find({$and:[{age:{$gte:40}},{age:{$lte:60}}]})

              3,模糊运算符:  / /

                       以什么开头:db.student.find({name:/^习/})

                       包含:db.student.find({name:/胖/})

7,分页:db.student.find().skip(3)          db.student.find().limit(3) 

            limit(n)   :表示显示n条

            skip(n)   :表示从n条显示

8,排序: db.student.find().sort({字段名:1/-1})        1: 表示升序    -1: 降序

9,计算查询结果的数量    :    db.student.find().count()

猜你喜欢

转载自blog.csdn.net/qq_39148947/article/details/82430789