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...

  • 相关阅读:
    心得体悟帖---200209(效率太低的事情我是不会做的,这个可以解释我所有的行为)
    心得体悟帖---200209(顺心而动的睡觉方式(6+1或者5+2的睡觉方式))
    按钮用图片做背景hover时闪烁
    范仁义Emmet课程---1、HTML速写之Emmet语法规则
    CSS3疑难问题---5、:before和::before的区别
    reset.css是什么
    日常英语---200209(Abbreviations(Emmet Abbreviations Syntax))
    日常英语---200209(relative(layer model))
    日常英语---200209(Emmet Abbreviations Syntax)
    伪元素和伪类在chrome浏览器里面还是比较好区分的
  • 原文地址:https://www.cnblogs.com/10manongit/p/12862393.html
Copyright © 2011-2022 走看看