飞道的博客

MongoDB DBA常用的NoSQL语句(全)

166人阅读  评论(0)

查看帮忙命令


   
  1. >hlep  --server级别
  2. >db.help()  --db级别
  3. >db. collectionname .help()   --集合级别

查看所有数据库


   
  1. >show dbs
  2. --新建的数据库并不在数据库的列集合中,要显示它,我们需要向新建的数据库创建集合。

查看当前数据库

>db

创建数据库

>use DATABASE_NAME


切换到某个数据

>use DATABASE_NAME


删除当前数据库,会把磁盘上的数据库文件一并删除

>db.dropDatabase()


修复数据库

> db.repairDatabase()


拷贝数据库test为test999

> db.copyDatabase('test','test999')


查看所有集合(关系型数据库叫表)


   
  1. >show collections
  2. >show tables

查看各集合的状态

> db.printCollectionStats()

新建集合


   
  1. db.createCollection( "集合名", {集合的大小属性:大小值,集合的增长属性:增长值,集合的最大容量属性:最大容量值,,,等等})
  2. >db.createCollection( "table1")

删除集合table1

>db.table1.drop()


重命名集合table1为table101

>db.table1.renameCollection("table101")

查看集合table1的所在的数据库名称

>db.table1.getDB()


查看集合table1的状态

> db.table1.stats()


查询集合


   
  1. >db.table1.find() --查询集合的所有数据
  2. >db.table1.findOne() --查询集合的第一条数据
  3. >db.table1.count() --总行数
  4. >db.table1.totalSize() --集合的总大小
  5. >db.table1.storageSize() --集合的储存空间大小
  6. >db.table1.distinct( "hid") --只查询列hid,并列出该列的不重复的值
  7. >db.table1.find({ "hid": 2}) --hid= 2
  8. >db.table1.find({ "hid": 2, "hid2": 3}) --hid= 2 and hid2= 3
  9. >db.table1.find({$or:[{ "hid": 2},{ "hid2": 3}]}) --hid= 2 or hid2= 3
  10. >db.table1.find({ "hid":{$gt: 1}}) --hid> 1
  11. >db.table1.find({ "hid":{$gte: 1}}) --hid>= 1
  12. >db.table1.find({ "hid":{$lt: 2}}) --hid< 2
  13. >db.table1.find({ "hid":{$lte: 2}}) --hid<= 2
  14. >db.table1.find({ "hid":/ 2/}) --hid like  '%2%'
  15. >db.table1.find({ "hid":/^ 2/}) --hid like  '2%'
  16. >db.table1.find({},{ "hid": 1, "go2": 1}) --查询指定的两列hid和go2
  17. >db.table1.find({ "hid": 23},{ "hid": 1, "go2": 1}) -- select hid,go2 from table1 where hid= 23
  18. >db.table1.find({},{ "hid": true, "go2": true})--查询指定的两列hid和go2
  19. >db.table1.find({ "hid": 23},{ "hid": true, "go2": true})-- select hid,go2 from table1 where hid= 23
  20. >db.table1.find().sort({ "hid": 1}) --查询结果按hid字段顺序排序
  21. >db.table1.find().sort({ "hid": -1}) --查询结果按hid字段降序排序
  22. >db.table1.find().limit( 2) --查询前两条数据
  23. >db.table1.find().skip( 2) --查询第 2条以后的所有数据
  24. >db.table1.find().limit( 3).skip( 2) --查询第 2条以后的后面 3条数据
  25. >db.table1.find({ "hid": 2}).count() --查询hid= 2的总行数

插入集合(关系型数据库叫行,mongodb叫文档,insert后不需要手工提交,其他会话可以看到)

方法1


   
  1. db.collectionname.insert({字段名:  "字段值"})
  2. >db.table1.insert({hid: "1"})


方法2


   
  1. db.集合名.save({字段名:  "字段值"})
  2. >db.table1.save({hid: 2,hname: "hao2"})
  3. 循环插入table1集合
  4. for ( var i =  0; i <  30; i++) db.table1.save({hid:  "u_" + i, age:  22 + i, sex: i %  2});

更新集合( 关系型数据库叫行,mongodb叫文档 )


   
  1. >db.table1.update({ 'hid': 2},{$set:{ 'hid': 4}},{multi: true})
  2. 把hid字段的值由 2修改为 4
  3. update默认修改第一条发现的行,multi: true集合示修改多行

删除集合( 关系型数据库叫行,mongodb叫文档 )


   
  1. >db.table1.remove({ 'hid2': 5}) --删除hid2为 5的行
  2. >db.table1.remove({}) --删除所有行

创建索引

创建索引后,数据库目录下会多出一个index-开头的文件


   
  1. >db.table1.ensureIndex({ "hid": 1})
  2. >db.table1.ensureIndex({ "hid": 1, "hid2": -1},{unique: true});
  3. 1表示升级排序, -1表示降序排序, "hid": 1, "hid2": -1表示组合索引,unique: true表示唯一性索引

查看集合table1的索引信息

>db.table1.getIndexes()


删除集合table1的索引

>db.table1.dropIndexes()


创建用户


   
  1. >db.createUser({user: "admin",pwd: "admin",roles:[{role: "userAdminAnyDatabase",db: "admin"}]});
  2. >db.createUser({user: "admin1",pwd: "admin1",roles:[{role: "root",db: "admin"}]});

查询用户的三种方法


   
  1. >use admin  
  2. >show users 
  3. >db.system.users.find()
  4. >db.system.users.find().pretty()

查询当前用户

db.runCommand({connectionStatus:1})

创建replicate的语句,创建replicate前,两个节点启动的时候必须要加上replSet参数,且replSet参数值必须一样,例如为replicate1


   
  1. >use admin
  2. >config={_id: 'replicate1',members:[{_id: 0,host: '172.22.1.157:27017'},{_id: 1,host: '172.22.1.158:27017'}]}
  3. >rs.initiate(config)
  4. >rs.status(config)
  5. >rs.status()
  6. >show dbs
  7. 再到从库执行如下
  8. >rs.slaveOk()
  9. >show dbs

查看replicate复制状态

> db.printReplicationInfo()

查询集合table1的shard版本信

>db.table1.getShardVersion()

查看shard分片信

>db.printShardingStatus()

启动


   
  1. 使用mongod命令,后面接各项参数
  2. mongod -f /mongodb/mongodb.conf

关闭

方法1、


   
  1. use admin
  2. db.shutdownServer()

方法2、(如果启动用了-f,则关闭的时候也要加-f)


   
  1. mongod --shutdown
  2. mongod --shutdown -f /mongodb/mongodb.conf


方法3、(不要加-9,否则下次启动会无法启动,需要删除mongod.lock文件或使用mongod启动时必须加上--repair才能启动成功)

kill 


mongodb切换日志

运行时间长了,mongodb的日志会很大,可以执行切换,生成新的日志,把旧的日志删除,执行这个语句,不影响mongodb服务的运行


   
  1. > use admin
  2. > db.runCommand({logRotate: 1})


执行后,会生成新的名称不变的日志文件,之前的日志会以时间格式命名保存下来

如果是replicate环境,不会影响replicate,primary执行这个语句只切换自己的日志,不影响secondary环境的服务,也不会切换secondary环境的日志;secondary执行这个语句只切换自己的日志,不影响primary环境的服务,也不会切换primary环境的日志

mongodb的日志文件,重启后还在,且会把重启涉及的关闭启动信息追加到这个日志文件中

出处:http://blog.itpub.net/30126024/viewspace-2645995/

另:想了解更多MongoDB数据库的知识与用法,欢迎关注墨天轮“MongoDB数据库专栏”(地址:https://www.modb.pro/db,点击左下角的“阅读原文”或者扫描下方二维码可直达),此外,墨天轮开放了很多数据库专栏,如 GaussDB、PolarDB、OceanBase、TDSQL、GoldenDB 等众多数据库专栏,欢迎关注学习!
 

数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!

资源下载

关注公众号:数据和云(OraNews)回复关键字获取

help,30万+下载的完整菜单栏

2019DTCC,数据库大会PPT

2018DTCC , 数据库大会PPT

2018DTC,2018 DTC 大会 PPT

ENMOBK,《Oracle性能优化与诊断案例》

DBALIFE,“DBA 的一天”海报

DBA04,DBA 手记4 电子书

122ARCH,Oracle 12.2体系结构图

2018OOW,Oracle OpenWorld 资料

 

 

 

 

 

  点个“在看” 
你的喜欢会被看到????


转载:https://blog.csdn.net/enmotech/article/details/103951551
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场