MongoDB之常用操作

  最近经常使用MongoDB来进行数据的操作,特此记录总结一下

  

角色 介绍
read 提供读取所有非系统的集合(数据库)
readWrite 提供读写所有非系统的集合(数据库)和读取所有角色的所有权限
dbAdmin 提供执行管理任务的功能,例如与架构相关的任务,索引编制,收集统计信息。此角色不授予用户和角色管理权限。
dbOwner 提供对数据库执行任何管理操作的功能。此角色组合了readWrite,dbAdmin和userAdmin角色授予的权限。
userAdmin 提供在当前数据库上创建和修改角色和用户的功能。由于userAdmin角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供对数据库的超级用户访问权限,或者,如果作用于管理数据库,则提供对群集的访问权限。
clusterAdmin 提供最佳的集群管理访问。此角色组合了clusterManager,clusterMonitor和hostManager角色授予的权限。此外,该角色还提供了dropDatabase操作。
readAnyDatabase 仅在admin 数据库中使用,提供所有数据库的读权限。
readWriteAnyDatabase 尽在admin 数据库中使用,提供所有数据库的读写权限
userAdminAnyDatabase 尽在admin 数据库中使用,提供与userAdmin相同的用户管理操作访问权限,允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供超级用户访问权限。
dbAdminAnyDatabase 仅在admin 数据库中使用,提供与dbAdmin相同的数据库管理操作访问权限,该角色还在整个群集上提供listDatabases操作。
root 尽在admin 数据库中使用,提供超级权限
  1.   查看所有的数据库
    show dbs
  2.     查看当前所在的库
    db
  3.     切换数据库
    use db1
  4.  修改数据库名称
    # 拷贝一份数据,删除旧的数据
    db.copyDatabase('old_name', 'new_name'); 
    use old_name 
    db.dropDatabase();
        •   数据导出
          mongoexport --host 127.0.0.1 --port 8906 -d xiguadata -c zhuti -o principal.dat
          
          说明:
              --host  主机地址
              --port  端口号
              -d 数据库名
              -c  集合名
              -o 导出的文件名称
          mongoexport -d myDB -c user -f _id,name,password,adress --csv -o ./user.csv
            --f 需要提取的field用逗号分隔
            --q 指定过滤条件 '{key:"value"}'
            --csv 指定导出的格式CSV

          mongoexport.exe -d xiguadata -c comps2 -f wxname,wxid,zt,wxdesc,fans,regdate -q "{_id:{'$gt':ObjectId('5c0f9f09031c2304c449542d')}}" --type=csv -o component.csv
  •      数据导入
    mongoimport -d 库名 -c 集合名  导入的文件名

     

  常见问题:

  1)使用-q 查询的时候报错

D:Program FilesMongoDBServer4.0in>mongoexport.exe -h localhost:27001 -d mldn -c emps -q '{age:{$gt:20}}' -f name,age,job,salary --type=csv > emps1.csv
2018-09-10T10:49:06.005+0800    error validating settings: query '[39 123 97 103 101 58 123 36 103 116 58 50 48 125 125 39]' is not valid JSON: json: cannot unmarshal string into Go value of type map[string]interface {}
2018-09-10T10:49:06.015+0800    try 'mongoexport --help' for more information

  解决:

    后来发现是window和linux的区别,linux上执行是外面包单引号,window要外面包双引号

    window写错:"{'consumeStatus':'SUCCESS','externalSeqNum':/^201705/}" 就没有问题了

原文地址:https://www.cnblogs.com/xingxia/p/MongoDB_use.html