首页 > 数据库技术 > 详细

Mongodb笔记(三)user && aggregate && mapReduce

时间:2017-01-13 14:03:26      阅读:227      评论:0      收藏:0      [点我收藏+]

版本:mongodb3.4。

User:

   mongodb使用验证登录;默认不开启,mongod中使用--auth开启:

   mongod -port=3000 --auth  ;

   基本方法:

     

db.createUser({
     user:username,
     pwd:passwd,
     roles:[ {role:  ‘ readWrite‘ , db : ‘db1‘} ]   //定义这个用户对应db的权限。 
});

db.updateUser(username,{
    pwd:‘‘,
    roles:[]
})    

db.dropUser(username);

db.changeUserPassword(username,newpswd);

   具体roles:参见

 

   在mongod开启验证前先在默认模式下,创建超级用户:

   mongo:

    use admin;

    db.createUser({user : ‘myRoot‘ ,  pwd: ‘***‘ ,  roles: [ role:‘root‘ , db:‘admin‘ ] });

  在创建好超级用户后,再开启mongod的验证模式,这样以后就能考靠这个超级用户来创建其他用户了。

  登录mongod:

    mongo -port=3000 -username=myRoot -password= *** -authenticationDataBase=admin

       authenticationDataBase ,指定你登录的DataBase.

  另一种方法:

    mongo -port=3000;

    use admin;

    db.auth(‘myRoot‘,‘***‘);

  登录后因为你是超级用户所以可以创建其它用户,并指定权限。

  mongodb在用户登录时,使用明文传输数据。建议使用TSL。

  

 

Aggregate:

     Instance:

  db.test.aggregate([

    {$match: {city: ‘shanghai‘ }},                             //匹配城市是上海的人。

    {$limit:5},                                   //只取5个document。  

    {$group:{_id:‘$sex‘   ,  ageAvg: {$avg:‘$age‘} }}   //将这5个人按照性别分组,ageAvg获得他们的平均属性。

  ])

  aggregate中的可用操作符是比较多,比如$project:

 

db.test.aggregate([
    {$group:{id:‘$sex‘, ageArr: { $push : ‘$age‘}}}  ,
    {$project: {_id:‘$name‘, sumAge: {
          $reduce:{
               input:‘$ageArr‘,
               initialVal: 0,
               in: [ ‘$$value‘ ,‘ $$this‘]   //value指initialVal的值,this指遍历ageArr时的当前值。
          }
    }}}  
])    

  

    

Mongodb笔记(三)user && aggregate && mapReduce

原文:http://www.cnblogs.com/ztwBlog/p/6282367.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!