• MongoDB增删改查


    MongoDB增删改查

    查询数据库: show dbs

    进入数据库: use MYDB

    查询数据库中表: show tables

    在mongo中创建新的用户 并赋予相应权限:

    db.createUser({
    
    user:<name_string>,                   #字符串
    
    pwd:<password_string>, #字符串
    
    roles:[{role:<role_name>,db:<db_name>}]     #数组+对象
    
    })
    

    user文档字段介绍:
    user字段,为新用户的名字;
    pwd字段,用户的密码;
    cusomData字段,为任意内容,例如可以为用户全名介绍;
    roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
    在roles字段,可以指定内置角色和用户定义的角色。

    Built-In Roles(内置角色):

    1. 数据库用户角色:read、readWrite;
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 备份恢复角色:backup、restore;
    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超级用户角色:root
      // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    7. 内部角色:__system

    创建用户

    例如:给admin添加一个root用户
    > use admin
    switched to db admin
    
    > db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})
    Successfully added user: {
    	"user" : "admin",
    	"roles" : [
    		{
    			"role" : "root",
    			"db" : "admin"
    		}
    	]
    }
    
    mongodb.conf文件中加入 auth=true
    
    验证用户
    
    > use admin
    switched to db admin
    > db.auth("admin","123456")
     1
    
    

    删除用户

    db.dropUser(<user_name>)    删除某个用户,接受字符串参数
    
    db.dropAllUser()             删除当前库的所有用户
    

    注意: 在mongo4.0版本中 配置用户认证需要在mongod.cfg中

    security:
     authorization: enabled
    

    重新启动服务: mongod -f "C:Program FilesMongoDBServer4.0inmongod.cfg"

    增加

    语法: db.collectionName.insert({json对象});
    
    1. 增加单个文档,json对象格式
    db.user.insert({name:'lee',age:23,sex:'0'}); 
    
    2. 增加多个文档,数组格式
    db.user.insert([{name:'lee',age:21,sex:'1'},{name:'lee3',age:24,sex:'0'}]); 
    

    删除

    语法: db.collection.remove(查询条件, num); 第二个参数是整数型,代表删除的个数;默认是0(删除全部文档)
    
    1. 将age等于21的全部删除
    db.user.remove({age:'24'})
    
    2. 删除 1 个 name=lee 的文档
    db.user.remove({name:'lee'},1)
    

    修改

    语法: db.collection.update(查询条件,新值);
    
    
    1. 将 name等于lee3 的文档 全部更新
    db.user.update({name:lee3},{name:"lee"})
    
    2. 修改一个文档的字段,必须使用$set:{属性:'值'}
    db.user.update({name:'lee3'},{$set:{name:'haha'}})
    

    查询

    语法: db.collection.find(查询条件,查询的列);
    
    1. 查询一个表中的所有文档
    db.user.find()
    
    2.查询特定文档
    db.user.find({name:'long'})
    

    数据库迁移 :

    使用mongo自带命令来进行迁移数据库,先导出集合数据再导入数据库中
    
    数据导出:mongoexport -d dbname -c collectionname -o filepath --type json/csv -f field
    
    数据导入:mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
    
    连接远程mongodb备份导入导出
    
    连接远程数据库:mongo -u username -p pwd host:post/database(数据库名)
    
    注:当该用户有相应权限时,可以查看collection==>查看集合命令:show collections
    
    备份导出:mongodump -h dbhost -d dbname -o dbdirectory
    
    备份恢复:mongorestore -h dbhost -d dbname dbdirectory
    
    可视化工具迁移
    
    详细步骤:https://jingyan.baidu.com/article/63f236287e91c40208ab3d11.html
    
  • 相关阅读:
    网页中插入Flash动画(.swf)代码和常用参数设置
    关于UML中逻辑模型的工具的详细介绍
    简单CSS hack:区分IE6、IE7、IE8、Firefox、Opera
    mysql sock找不到
    简述nginx日志管理切割日志(亲测可行)
    Linux下使用rm删除文件,并排除指定文件(亲测可行)
    常驻内存以及如何避免内存泄漏
    TASK异步进程处理场景
    TCP长连接数据传输(同步方式)
    在智联上投了一个月的简历,很多都有意向,但是却没有通知我去
  • 原文地址:https://www.cnblogs.com/longren/p/12467626.html
Copyright © 2020-2023  润新知