欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB

程序员文章站 2024-01-22 21:57:22
...

1.认识MongoDB

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

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

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

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

    

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

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


    进入与退出   

    MongoDB

2.库、集合操作

  • 库级语句

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

       use db_name 切换/创建数据库

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

       dp.dropDatanase() 删除库

       MongoDB

  • 集合语句

       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() //格式化查询

     MongoDB

  • 高级查询

       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' 

 MongoDB

db.student.find({

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

MongoDB

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

  • 更新数据

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

       MongoDB

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

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

       MongoDB

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

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

    MongoDB

  • 删除数据

     删除满足条件的所有数据

        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指定库

     MongoDB

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

     MongoDB

       use admin

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

      MongoDB

  •   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()            #查询所有用户

相关标签: mongdb mongdb配置