zoukankan      html  css  js  c++  java
  • MongoDB 使用手册

    运行 MongoDB
    > mongd --dbpath f:/data/db
    登录 MongoDB
    > mongo
    进入或创建数据库,如果不存在则创建
    > use test
    使用用户名密码授权
    > db.auth('test','test')
    创建用户,只对指定的数据库有效,比如以下例子只对 test 有效,roles 可以传一个空数组
    > use test  
    > db.createUser( { "user" : "test",
         "pwd": "test",
         "customData" : { employeeId: 12345 },
         "roles" : [ 
                { role: "clusterAdmin", db: "admin" },
                { role: "readAnyDatabase", db: "admin" } 
            ] 
    } )
    
    db.createUser( { "user" : "sheng",
        "pwd": "sheng",
        "roles" : [
            { role: "dbAdmin", db: "snailloveMusic" },
            { role: "readWrite", db: "snailloveMusic" }
        ]
    } )

    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
      PS:关于每个角色所拥有的操作权限可以点击上面的内置角色链接查看详情。
    查看数据库和集合
    > show dbs
    
    > show collections
    常用操作,以 collection 为 users 示例

    创建、插入、更新、索引、删除操作:

    > db.createCollection("users")
    
    > db.users.insert( {
            user_id: "abc123",
            age: 55,
            status: "A"
        } )
     
    > db.users.update(
            { },
            { $set: { join_date: new Date() } },
            { multi: true }
        )
    
    > db.users.update(
           { age: { $gt: 25 } },
           { $set: { status: "C" } },
           { multi: true }
        )
    
    > db.users.update(
           { status: "A" } ,
           { $inc: { age: 3 } },
           { multi: true }
        )
        
    > db.users.remove( { status: "D" } )
    
    > db.users.remove({})
    
    > db.users.createIndex( { user_id: 1 } )
    
    > db.users.createIndex( { user_id: 1, age: -1 } )
    
    > db.users.drop()
    

    查询操作,可以使用小于、大于、不等于、正则匹配等

    
    > db.users.find()
    
    > db.users.find(
            { },
            { user_id: 1, status: 1 }
        )
        
    > db.users.find(
            { status: { $ne: "A" } }
        )
        
    > db.users.find(
            { $or: [ { status: "A" } ,
                     { age: 50 } ] }
        )
    
    > db.users.find(
            { age: { $gt: 25 } }
        )
        
    > db.users.find(
           { age: { $lt: 25 } }
        )
        
    > db.users.find(
           { age: { $gt: 25, $lte: 50 } }
        )
        
    > db.users.find( { user_id: /^bc/ } )
    
    > db.users.count( { user_id: { $exists: true } } )
    
    > db.users.find( { user_id: { $exists: true } } ).count()
    
    > db.users.distinct( "status" )
    
    > db.users.findOne()
    
    > db.users.find().limit(1)
    
    > db.users.find().limit(5).skip(10)
    
    > 

    官方 doc: https://docs.mongodb.com/manu...

  • 相关阅读:
    Chaikin Curves in Processing
    finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?
    System.gc()和Runtime.gc()的区别?
    GC原理---对象可达判断
    java十题
    在 Queue 中 poll()和 remove()有什么区别?
    ArrayList和LinkedList的区别
    HashSet的实现原理
    Java中HashMap和TreeMap的区别
    List、Map、Set之间的联系与区别:
  • 原文地址:https://www.cnblogs.com/10manongit/p/12862393.html
Copyright © 2011-2022 走看看