In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >
Share
Shulou(Shulou.com)05/31 Report--
本篇文章给大家分享的是有关mongodb dba常用的nosql语句有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
查看帮忙命令
>hlep --server级别
>db.help() --db级别
>db.collectionname.help() --集合级别
查看所有数据库
>show dbs
--新建的数据库并不在数据库的列集合中,要显示它,我们需要向新建的数据库创建集合。
查看当前数据库
>db
创建数据库
>use DATABASE_NAME
切换到某个数据
>use DATABASE_NAME
删除当前数据库,会把磁盘上的数据库文件一并删除
>db.dropDatabase()
修复数据库
> db.repairDatabase()
拷贝数据库test为test999
> db.copyDatabase('test','test999')
查看所有集合(关系型数据库叫表)
>show collections
>show tables
查看各集合的状态
> db.printCollectionStats()
新建集合
db.createCollection("集合名", {集合的大小属性:大小值,集合的增长属性:增长值,集合的最大容量属性:最大容量值,,,等等})
>db.createCollection("table1")
删除集合table1
>db.table1.drop()
重命名集合table1为table101
>db.table1.renameCollection("table101")
查看集合table1的所在的数据库名称
>db.table1.getDB()
查看集合table1的状态
> db.table1.stats()
查询集合
>db.table1.find() --查询集合的所有数据
>db.table1.findOne() --查询集合的第一条数据
>db.table1.count() --总行数
>db.table1.totalSize() --集合的总大小
>db.table1.storageSize() --集合的储存空间大小
>db.table1.distinct("hid") --只查询列hid,并列出该列的不重复的值
>db.table1.find({"hid":2}) --hid=2
>db.table1.find({"hid":2,"hid2":3}) --hid=2 and hid2=3
>db.table1.find({$or:[{"hid":2},{"hid2":3}]}) --hid=2 or hid2=3
>db.table1.find({"hid":{$gt:1}}) --hid>1
>db.table1.find({"hid":{$gte:1}}) --hid>=1
>db.table1.find({"hid":{$lt:2}}) --hiddb.table1.find({"hid":{$lte:2}}) --hiddb.table1.find({"hid":/2/}) --hid like '%2%'
>db.table1.find({"hid":/^2/}) --hid like '2%'
>db.table1.find({},{"hid":1,"go2":1}) --查询指定的两列hid和go2
>db.table1.find({"hid":23},{"hid":1,"go2":1}) --select hid,go2 from table1 where hid=23
>db.table1.find({},{"hid":true,"go2":true})--查询指定的两列hid和go2
>db.table1.find({"hid":23},{"hid":true,"go2":true})--select hid,go2 from table1 where hid=23
>db.table1.find().sort({"hid":1}) --查询结果按hid字段顺序排序
>db.table1.find().sort({"hid":-1}) --查询结果按hid字段降序排序
>db.table1.find().limit(2) --查询前两条数据
>db.table1.find().skip(2) --查询第2条以后的所有数据
>db.table1.find().limit(3).skip(2) --查询第2条以后的后面3条数据
>db.table1.find({"hid":2}).count() --查询hid=2的总行数
插入集合(关系型数据库叫行,mongodb叫文档,insert后不需要手工提交,其他会话可以看到)
方法1
db.collectionname.insert({字段名: "字段值"})
>db.table1.insert({hid:"1"})
方法2
db.集合名.save({字段名: "字段值"})
>db.table1.save({hid:2,hname:"hao2"})
循环插入table1集合
for (var i = 0; i
< 30; i++) db.table1.save({hid: "u_" + i, age: 22 + i, sex: i % 2}); 更新集合(关系型数据库叫行,mongodb叫文档) >db.table1.update({'hid':2},{$set:{'hid':4}},{multi:true})
把hid字段的值由2修改为4
update默认修改第一条发现的行,multi:true集合示修改多行
删除集合(关系型数据库叫行,mongodb叫文档)
>db.table1.remove({'hid2':5}) --删除hid2为5的行
>db.table1.remove({}) --删除所有行
创建索引
>db.table1.ensureIndex({"hid":1})
>db.table1.ensureIndex({"hid":1,"hid2":-1},{unique:true});
1表示升级排序,-1表示降序排序,"hid":1,"hid2":-1表示组合索引,unique:true表示唯一性索引
创建索引后,数据库目录下会多出一个index-开头的文件
查看集合table1的索引信息
>db.table1.getIndexes()
删除集合table1的索引
>db.table1.dropIndexes()
创建用户
>db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]});
>db.createUser({user:"admin1",pwd:"admin1",roles:[{role:"root",db:"admin"}]});
查询用户的三种方法
>use admin
>show users
>db.system.users.find()
>db.system.users.find().pretty()
查询当前用户
db.runCommand({connectionStatus:1})
创建replicate的语句,创建replicate前,两个节点启动的时候必须要加上replSet参数,且replSet参数值必须一样,例如为replicate1
>use admin
>config={_id:'replicate1',members:[{_id:0,host:'172.22.1.157:27017'},{_id:1,host:'172.22.1.158:27017'}]}
>rs.initiate(config)
>rs.status(config)
>rs.status()
>show dbs
再到从库执行如下
>rs.slaveOk()
>show dbs
查看replicate复制状态
> db.printReplicationInfo()
查询集合table1的shard版本信息
>db.table1.getShardVersion()
查看shard分片信息
>db.printShardingStatus()
启动
使用mongod命令,后面接各项参数
mongod -f /mongodb/mongodb.conf
关闭
方法1、
use admin
db.shutdownServer()
方法2、(如果启动用了-f,则关闭的时候也要加-f)
mongod --shutdown
mongod --shutdown -f /mongodb/mongodb.conf
方法3、(不要加-9,否则下次启动会无法启动,需要删除mongod.lock文件或使用mongod启动时必须加上--repair才能启动成功)
kill
mongodb切换日志
运行时间长了,mongodb的日志会很大,可以执行切换,生成新的日志,把旧的日志删除,执行这个语句,不影响mongodb服务的运行
> use admin
> db.runCommand({logRotate:1})
执行后,会生成新的名称不变的日志文件,之前的日志会以时间格式命名保存下来
如果是replicate环境,不会影响replicate,primary执行这个语句只切换自己的日志,不影响secondary环境的服务,也不会切换secondary环境的日志;secondary执行这个语句只切换自己的日志,不影响primary环境的服务,也不会切换primary环境的日志
mongodb的日志文件,重启后还在,且会把重启涉及的关闭启动信息追加到这个日志文件中
以上就是mongodb dba常用的nosql语句有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.