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

mongo基本操作

程序员文章站 2022-06-29 10:42:25
概念 库级操作 #集合操作 文档操作 插入 查询 更新 删除 mongodb配置 mongodb权限 ......

概念

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

库级操作

use DATABASE            #切换/创建库        
show dbs                #查看所有数据库(空库不会显示)
db.dropDatabase()        #删除当前数据库
db                        #查看当前所在库

#集合操作

db.createCollection(name, options)    #创建集合   用引号引起来
    capped:类型为boolean,如果为true则为创建一个固定大小的集合,当集合中的数据条目达    到最大时自动覆盖以前的条目。
    size:指定集合字节最大值,当capped为true时需要指定。单位为byte
    max:指定集合中数据的最大条数。    
    db.createCollection(
    "BizUser",
    {capped:1,autoIndexID:1,size:6142800,max:10000}
    )

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

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

文档操作

插入

db.集合名称.insert(document)    #插入文档,    集合不存在会自动创建, 不能插入重复id的数据

db.student.insert({_id:1, name:'bear', age:18})


db.student.insert([
    {name:'juhao', sex:'男', age:18},
    {name:'nanbei', sex:'男', age:19},
    {name:'budong', sex:'男', age:20},
])

查询

db.集合名称.find()                #查询所有
db.集合名称.find().pretty()        #结构化显示

db.集合.find({name:10}).pretty()            where name = 10
db.集合.find({name:{$ne:10} }).pretty()        where name != 10
db.集合.find({name:{$gt:10} }).pretty()        where name > 10
db.集合.find({name:{$lt:10} }).pretty()        where name < 10
#后面加个e就是加等于



#and逻辑
{$and:[{expression1}, {expression1}, ...]   }
#or逻辑
{$or:[{expression1}, {expression1}, ...]   }


#where sex='男' and age > 18
db.table.find({
    $and:[
        {sex:'男'}, {age:{$gt:18}}
    ]
})


#where sex='女' or age =18
db.table.find({
    $or:[
        {sex:'女'}, {age:18}
    ]
})


#where (sex='女' and age=18) or (sex='男' and age>18)
db.table.find({
    $or:[
        {$and:[{sex:'女'}, {age:18}]},
        {$and:[{sex:'男'}, {age:{$gt:18}}]}
    ]    
})

更新

db.table.update({sex:'男'},[{age:20})    #更新第一条找到的文档全部值  无multi

db.table.update({sex:'男'}, {$set:{age:666, agee:6666}})  #修改第一条找到的文档,不存在就添加
                           
db.table.update({sex:'男'}, {$set:{sex:'女'}}, {multi:true})    #更新全部

删除

db.集合名称.remove( <query>, <justOne> )
db.table.remove({age:18})        #删除所有满足条件的
db.table.remove({sex:'男'}, {justOne:true})    #删除一条

mongodb配置

vim /etc/mongodb.conf
    dbpath                    #数据存放的地址
    logpath                    #日志存放的地址
    bind_ip = 0.0.0.0         #监听IP
    auth = True                #权限认证

mongodb权限

MongoDB默认设置为无权限访问限制

#进入user admin

#创建管理员用户,用来管理用户,可以通过这个角色来创建、删除用户,用户只具有管理用户和角色的权限。
db.createUser({
    user:'bear',
    pwd:'123456',
    roles:[{role:"userAdminAnyDatabase", db:"admin"}]
})
#role:指定用户的角色,db指定库


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