MongoDBDBA常用的NoSQL语句参考学习 [数据库教程]

database

 

查看帮忙命令

 

>

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}}) 

--hid<2



>db.table1.

find({

"hid":{$lte:

2}}) 

--hid<=2



>db.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({}) 

--删除所有行


 

 

创建索引

 

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

 

>db.table1.ensureIndex({

"hid"

:

1})



>db.table1.ensureIndex({

"hid"

:

1,

"hid2"

:-

1},{

unique:

true});



1表示升级排序,-

1表示降序排序,

"hid"

:

1,

"hid2"

:-

1表示组合索引,

unique:

true表示唯一性索引


 

 

查看集合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 <mongod process 

ID>


 


mongodb切换日志

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

 

 

use 

admin



db

.runCommand({

logRotate:

1})


 


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

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

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

--原文地址:http://blog.itpub.net/30126024/viewspace-2645995/

MongoDB DBA常用的NoSQL语句 参考学习

以上是 MongoDBDBA常用的NoSQL语句参考学习 [数据库教程] 的全部内容, 来源链接: utcz.com/z/534887.html

回到顶部