zoukankan      html  css  js  c++  java
  • mongodb 3.4 学习 (二)命令

    # 使用或切换数据库
    use <database name>
    
    # 显示所有数据库
    show dbs
    
    # 显示所有collection
    show collections
    
    # 显示所有user
    show users
    
    # 插入document到collections
    doc = ({"Type": "Book", "Title": "Definitive Guide to MongoDB 3rd ed., The","ISBN": "978-1-4842-1183-0", "Publisher": "Apress", "Author": ["Hows, David", "Plugge,Eelco", "Membrey, Peter", "Hawkins, Tim"]})
    
    db.media.insertOne(doc) # collections media不需要提前建立,在插入document时自动生成
    db.media.insertOne( { "Type" : "CD", "Artist" : "Nirvana", "Title" : "Nevermind" })
    
    # 检索document
    > db.media.find()
    { "_id" : ObjectId("591e57feade3e79fbc1a8319"), "Type" : "Book", "Title" : "Definitive Guide to MongoDB 3rd ed., The", "ISBN" : "978-1-4842-1183-0", "Publisher" : "Apress", "Author" : [ "Hows, David", "Plugge,Eelco", "Membrey, Peter", "Hawkins, Tim" ] }
    { "_id" : ObjectId("591e586cade3e79fbc1a831a"), "Type" : "CD", "Artist" : "Nirvana", "Title" : "Nevermind" }
    
    > db.media.find ({ Artist: "Nirvana"}) # 按作者检索,返回全部项目
    > db.media.find ({Artist: "Nirvana"}, {Title: 1}) # 按作者检索,仅返回title
    > db.media.find ({Artist: "Nirvana"}, {Title: 1, _id: 0}) # 按作者检索,仅返回title,同时不显示id
    
    db.media.find().sort({Title: 1}) # 1 asc, -1 desc
    db.media.find().limit(10)
    db.media.find().skip(20)
    
    db.media.find().sort({Title: -1}).limit(10).skip (20)
    
    # capped collection : 固定长度的collection,写满时会自动清除开头的记录,然后在未尾写入新记录
    > db.createCollection("audit", {capped:true, size:20480})
    > db.audit.find().sort({ $natural: -1 }).limit (10)
    > db.createCollection("audit100", {capped:true, size:20480, max:100}) # 最大容量2048Bytes,最大记录数100
    > db.audit100.stats()
    
    # Aggregation(聚合)
    > db.media.count()
    > db.media.find({Publisher:"Apress", Type:"Book"}).count()
    
    > db.media.distinct( "Title")
    
    # 分组
    > db.media.group (
    {
      key: {Title : true},
      initial: {Total : 0},
      reduce : function (items,prev)
      {
        prev.Total += 1
      }
    }
    )
    
    # 数据库用户角色
    read 读取所有非系统collection和system.indexes、system.js、system.namespaces三个系统collection
    readWrite 读写所有非系统collection和system.indexes、system.js、system.namespaces三个系统collection
    
    # 数据库管理员角色
    dbAdmin 除用户角色管理的其他管理操作
    userAdmin 修改当前数据库的用户及角色,
    dbOwner readWrite + dbAdmin + userAdmin
    
    # 群集管理员角色
    hostManager 管理和监控服务器
    clusterMonitor 只读访问权限的监控工具
    clusterManager 管理监控群集,允许访问config和local数据库,用于sharing replication respectively
    clusterAdmin hostManager + clusterMonitor + clusterManager
    
    # 备份恢复角色
    backup
    restore 允许使用mongorestore命令但不允许使用oplogReplay选项,不能恢复system.profile数据
    
    # 全数据库权限
    readAnyDatabase  所有数据库的读权限
    readWriteAnyDatabase 所有数据库的读写权限
    userAdminAnyDatabase 所有数据库的userAdmin权限
    dbAdminAnyDatabase 所有数据库的dbAdmin权限
    
    # 超级用户权限
    root readWriteAnyDatabase + dbAdminAnyDatabase + userAdminAnyDatabase + clusterAdmin + restore + backup
    
    # 建立超级用户admin
    use admin
    db.createUser(
      {
        user: 'admin',
        pwd: '@admin',
        roles: [
           { role: 'root', db: 'admin' },
        ]
      }
    )
    
    # 建立mydb的管理员用户my
    use mydb
    db.createUser(
      {
        user: 'my',
        pwd: '@my',
        roles: [
           { role: 'dbOwner', db: 'mydb' },
        ]
      }
    )
    
    # 用户认证登录
    use admin
    db.auth('admin', '@admin')
    
  • 相关阅读:
    暑假周总结六
    常用的Linux操作
    大数据概述
    实验一
    我对编译原理的看法
    ActiveReports中自定义Winforms的Viewer 工具栏
    ActiveReport 同一单元格内图片跟文字按条件显示
    ActiveReports最终报表设计器本地化方法介绍
    ActiveReports中如何使用Excel数据源
    如何设置WebViewer的参数栏显示状态
  • 原文地址:https://www.cnblogs.com/liujitao79/p/6877082.html
Copyright © 2011-2022 走看看