查看帮忙命令
-
>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
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数据库的知识与用法,欢迎关注墨天轮“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