首页  :: 新随笔  :: 管理

mongodb 3 常用命令操作

Posted on 2016-09-25 16:41  季枫  阅读(692)  评论(0编辑  收藏  举报

操作命令详见,这个归类很好,有些教程乱麻麻的

http://www.tuicool.com/articles/j2ueau

 mongodb 客户端:

./mongo
./mongo 127.0.0.1:27017/dabasename -uusername -ppasswd

 

db.createUser({user:"zhihuiroot",pwd:"zhihui23434",roles:[{role:"root",db:"admin"}]});
db.createUser({user:"dba",pwd:"eGeemZZ0tFRap222",roles:[{role:"dbAdmin",db:"admin"}]});


db.createUser({user:"zhihui",pwd:"zhihui1111",roles:[{role:"readWrite",db:"zhidu"}]});


database级操作
#查看服务器上的数据库
> show dbs
#切换数据库
> use DBNAME
#查看当前数据库中的所有集合
> show collections
# 创建数据库
> use test2
#删除数据库
> db.dropDatabase()
#查看当前数据库
> db

collection级操作
#新建collection
> db.createCollection("Hello")
#删除collection,返回true说明删除成功,false说明没有删除成功。
> db.Hello.drop()
#重命名collection,将hello2集合重命名为HELLO
> PRIMARY> db.hello2.renameCollection("HELLO")
#查看当前数据库中的所有collection
>show collections
#查询指定返回字段
>db.member.find({},{_id:1,nickname:1});

#删除指定文档
>db.member.remove({_id:ObjectId("583100c304ca4e412f80f065")})

#更新字段
>db.item.update({_id:ObjectId("585401e304ca4e15c2dc5261")},{"$set":{"invalid":1}})
#删除文档中的字段
>db.item.update({_id:ObjectId("585401e304ca4e15c2dc5261")},{"$unset":{"invalid":1}})


针对集合中记录的操作
#向user集合中插入两条记录
> db.user.insert({'name':'Gal Gadot','gender':'female','age':28,'salary':11000
#查找集合中的所有记录 
> db.user.find()


#单一条件(查找集合中的符合条件的记录 ) a)Exact Equal:查询age为了23的数据
> db.user.find({"age":23})
#Great Than:查询salary大于5000的数据
> db.user.find({salary:{$gt:5000}})
#Fuzzy Match:查询name中包含'a'的数据
> db.user.find({name:/a
#查询name以G打头的数据
> db.user.find({name:/^G/})

#多条件"与":查询age小于30,salary大于6000的数据
> db.user.find({age:{$lt:30},salary:{$gt:6000}})

#多条件"或":查询age小于25,或者salary大于10000的记录
> db.user.find({$or:[{salary:{$gt:10000}},{age:{$lt:25


#查询第一条记录
> db.user.findOne({$or:[{salary:{$gt:10000}},{age:{$lt:25}}]})
#查询记录的指定字段(注意:这里的1表示显示此列的意思,也可以用true表示。) 
> db.user.find({},{name:1,age:1,salary:1,sex_orientation:true})

#查询gender字段的数据,并去掉重复数据
> db.user.distinct('gender')

对查询结果集的操作 
#Pretty Print,为了方便,mongo也提供了pretty print工具,db.collection.pretty()或者是db.collection.forEach(printjson)
> db.user.find().pretty()
#指定结果集显示的条目,a)显示结果集中的前3条记录
> db.user.find().limit(3)
# b)查询第1条以后的所有数据
> db.user.find().skip(1)

#对结果集排序:升序
> db.user.find().sort({salary:1})
#降序
> db.user.find().sort({salary:-1})

统计查询结果中记录的条数 
#统计集合中的所有记录条数
> db.user.find().count()

#查询符合条件的记录数,查询salary小于4000或大于10000的记录数
> db.user.find({$or: [{salary: {$lt:4000}}, {salary: {$gt:10000}}]}).count()
# 查询大于指定日期的结果集
> db.getCollection('ibt').find({"createTime":{$gte:new Date("2019-03-29T00:00:00.00Z")}}).sort({"createTime":-1})

# 多条件组合查询
> db.getCollection('ibt').find({result:{"$elemMatch": {"seqId":2}},"createTime":{$gte:new Date("2019-03-29T00:00:00.00Z")}})

#模糊匹配
>db.getCollection('ibt').find({"sId":{$regex:/e08.*/i}})

#分页查询
> db.getCollection('ibt').find({"createTime":{$gte:new Date("2019-03-29T00:00:00.00Z")}}).sort({"createTime":-1}).limit(2)

  

 

 

mongodb3创建用户

http://www.tuicool.com/articles/V3eqyij

#在admin下创建的帐号,不能直接在其他库验证,
#只能在帐号创建库下认证,再去其他库进行操作。
db.createUser({user:"zd",pwd:"1234455",roles:[{role:"readWrite",db:"zhidu"}]});
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

 

 1、查询所有用户:

use admin
db.system.users.find().pretty()

 

2、删除用户:

db.system.users.remove({user:"zhidu"})

3、修改密码:

db.addUser("zhidu","java1");

 

4、关闭本地例外登录方式

一旦拥有了超级管理员,就可以考虑强制登录了

方法如下:

重启数据库,启动时候加上--auth即可,这样登录的话就必须要用账户认证了

客户端连接后,要先切换数据库到所创建用户的db,这一点相当坑哈

然后使用:db.auth("id","passwd")

5、备份整库

./mongodump -h 127.0.0.1 -d dbname -o savePath -u username -p passwd --authenticationDatabase dbname

6、恢复整库

./mongorestore -h 127.0.0.1 -d dbname -u username -p passwd  --authenticationDatabase  admin --drop filepath

智读 | 成都会领科技有限公司官网 | 智读App下载 | 每天听本书的博客 | |