MongoDB

1.认识MongoDB

    MongoDB基于分布式文件存储的开源数据库系统  .

    1)文档结构的存储方式,能够更便捷的获取数据 

    2)海量数据下,性能优越

    3)3.高效存储二进制大对象 (如照片和视频)

    

RDBMS(关系型数据库管理系统)
 
mongdb
Database(数据库)Database(数据库)
Table(表)Collection(集合)
Record(记录)Document(文档)

  mongodb和熟悉的数据库的对应关系


    进入与退出   

    

2.库、集合操作

  • 库级语句

       show dbs  显示所有数据库(空数据库不显示)

       use db_name 切换/创建数据库

       db   查看所在库(默认是test数据库)

       dp.dropDatanase() 删除库

       

  • 集合语句

       show collections 查看当前数据库的集合

       db.createCollection(name)  创建集合

       db.集合名称.drop()    删除集合

3.文档的增删改查

  • 插入数据(集合不存在则创建)

        db.集合名称.insert(document)    #每一条数据,就是一个document,即就是一条json(json是一种标准数据格式,以后会讲)

        例:db.student.insert({name:‘sakura',age:18})

        可以插入多条

             db.student.insert([ {name:'sakura', sex:'男', age:18},    

                                              {name:'jay', sex:'男', age:18},    

                                              {name:'luoli', sex:'女', age:18}, ])

  • 查询数据

       db.集合名称.find()

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

     

  • 高级查询

       and条件            {$and:[{expression1}, {expression1}, ...]   }

       or条件            {$or:[{expression1}, {expression1}, ...]   }

       and,or联合使用

       条件操作符     

             $ne    #不等于     

             $gt      # 大于     

             $lt     # 小于     

             $gte     # 大于等于     

             $lte     # 小于等于

       db.集合名称.find({name:key}).pretty()    #where name=key

       db.集合名称.find({name:{$ne:key}}).pretty()        #wherer name != key

db.student.find({

    $and:[
       {age:18},
        {name:{$ne:'sakura'}}
    ]
})    #   where  age =18  and   name !=  'sakura' 

 

db.student.find({

    $or:[
       {$and:[{sex:'男'},{name:'sakura'}]},
       {$and:[{age:{$gt:18}},{sex:'女'}]}
    ]
})      #  where  (sex  =  '男'  and name ='sakura ') or  ( age > 18 and sex = '女')

这一块中括号大括号小括号非常麻烦,建议先在本地文本中分隔清楚再复制到命令行

  • 更新数据

       全文档更新: db.student.update({age:18},{age:20})   //只修改一条,将age=18的第一条数据覆盖为age:20

       

      指定属性更新,通过操作符$set

            db.student.update({name:'jay'},{$set:{age:20, sex:'boy' }})

       

     更新多条: { multi: ture }  (前提只能指定字段更新)  

            db.student.update( {age:20},{$set:{sex:'女'}},{ multi:true} )

    

  • 删除数据

     删除满足条件的所有数据

        db.student.remove({sex:'女'})

     删除集合所有文档

        db.student.remove({})

     只是删除一条

       db.student.remove({sex:'女'},{justOne:true })

4.mongodb配置

     在Ubuntu系统中默认配置文件地址:   /etc/mongodb.conf

     dbpath            # 数据存放位置    

     logpath            # 日志存放位置

     bind 127.0.0.1        # 指定IP进行监听  

     auth = True        #权限认证,用户管理

    若打开auth=True,则开启权限认证按以下步骤

  •  user admin #进入admin数据库
  • 创建管理员用户,用来管理用户,可以通过这个角色来创建、删除用户,用户只具有管理用户和角色的权限。

       db.createUser({
            user:'juha',
            pwd:'123456',
            roles:[{role:"userAdminAnyDatabase", db:"admin"}]
       })     #role:指定用户的角色,db指定库

     

  • sudo service mongdb restart   #重启mongdb,输入密码
  • #此时进入除admin之外的数据库进行任何操作都会提示没有权限

     

       use admin

       db.auth('juha', '123456' )   #权限认证,输入帐号密码即可

      

  •   db.createCollection('student')    #创建一个库
      use student                #进入
  • 给该库添加用户
    db.createUser({            
        user:'test',
        pwd:'test',
        roles:[{
            role:'readWrite',
            db:'student'
        }]
    })
  • 操作

       show users                #查看当前库下的用户
      db.dropUser('username')    #删除某个用户
      db.dropAllusers()        #删除当前库的所有用户
      db.getUsers()            #查询所有用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值