mongodb常用命令
1、客户端连接服务
>mongo
2、查看数据库信息
>db.stats()
3、显示有哪些数据库
>show dbs;
4、选择使用哪个库
>use 数据库名
5、显示数据库中有哪些表
>show tables;
6、查看表信息
db.data_sys_log.stats()
7、数据库帮助
>db.help()
8、数据表帮助
>db.data_sys_log.help()
9、查看全表记录
>db.data_sys_log.find()
10、设置命令行查询数据,每页显示多少条
>DBQuery.shellBatchSize = 5
默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。
可以通过DBQuery.shellBatchSize设置每页显示数据的大小。如:DBQuery.shellBatchSize = 5,这样每页就显示5条记录了
11、查询一条记录
>db.data_sys_log.findOne()
12、查询聚集中字段的不同记录
>db.data_sys_log.distinct(
"login_name"
)
13、查询聚集中login_name包含“王”关键字的记录
>db.data_sys_log.find({
"login_name"
:/王/})
14、查询聚集中login_name以“王”关键字开头的记录
>db.data_sys_log.find({
"login_name"
:/^王/})
15、查询聚集中login_name以“王”关键字结尾的记录
>db.data_sys_log.find({
"login_name"
:/王$/})
16、查询聚集中指定列。
1表示
true
:相当于
select
login_name,role_name
from
data_sys_log
>db.data_sys_log.find({},{
"login_name"
:1,
"role_name"
:1})
虽然只查login_name,role_name两列,默认会带出_id列
17、 查询聚集中排除指定列
>db.data_sys_log.find({},{
"login_name"
:0,
"role_name"
:0})
18、查询聚集中指定列,且Age > 20
>db.data_sys_log.find({
"Age"
:{
"$gt"
:20}},{
"login_name"
:0,
"role_name"
:0})
19、聚集中字段排序
>db.data_sys_log.find().sort({
"login_name"
:1}) 升序
>db.data_sys_log.find().sort({
"login_name"
:-1}) 降序
20、统计聚集中记录条数
>db.data_sys_log.find().count();
21、统计聚集中符合条件的记录条数
>db.data_sys_log.find({
"Age"
:{
"$gt"
:20}).count();
22、统计聚集中字段符合条件的记录条数
>db.data_sys_log.find({
"login_name"
:{
"$exists"
:
true
}}).count()
相当于:
select
count(login_name)
from
data_sys_log
23、查询聚集中前5条记录
>db.data_sys_log.find().limit(5)
24、查询聚集中第10条以后的记录,就是从11条开始
>db.data_sys_log.find().skip(10)
25、查询聚集中第10条记录以后的5条记录
>db.data_sys_log.find().skip(10).limit(5)
26、OR查询
>db.data_sys_log.find({
"$or"
:[{
"login_name"
:/王/},{
"role_name"
:/王/}]},{
"login_name"
:
true
,
"role_name"
:
true
})
相当于:
select
login_name,role_name
from
data_sys_log
where
login_name like
'%王%'
or role_name like
'%王%'
27、添加新记录
>db.data_sys_log.insert({
"_class"
:
"com.uws.base.model.SysLogMongo"
,
"login_name"
:
"测试"
,
"role_name"
:
"测试角色"
,
"opt_content"
:
"[类名]:com.uws.base.controller.LoginController,[方法]:logout,[参数]:"
,
"create_time"
:
"2019-05-21 10:59:10"
})
注意:如果不选择库执行,即不use hz_studentroll;
则直接在test库中创建data_sys_log表,插入数据
28、修改记录
>db.data_sys_log.update({
"login_name"
:
"系统管理员"
},{
"$set"
:{
"role_name"
:
"管理员"
}})
注意:配置多条,只会修改一条
29、删除记录
>db.data_sys_log.remove({
"role_name"
:
"管理员"
})
>db.data_sys_log.remove({
"age"
:{$lt:20}}) age<20
$lt <
$lte <=
$gt >
$gte >=
$ne !=
30、全部删除
>db.data_sys_log.remove()
>db.data_sys_log.remove({})
31、给表添加字段
>db.data_sys_log.update({},{$
set
:{source:
null
}},{multi:1})
32、删除表字段
>db.data_sys_log.update({},{$unset:{
'source'
:
null
}},
false
,
true
)
33、删除数据库
>db.dropDatabase(); #删除当前所在的数据库
34、删除表
> db.user.drop() #删除user表
35、关闭mongo服务
1)使用数据库命令关闭:
>use admin
>db.shutdownServer();
2)使用mongod命令关闭
>mongod --shutdown -f ../mongo.conf
或
>mongod -f ../mongo.conf shutdown
3)使用kill命令
>ps -ef|grep mongo
>kill pid
>ps -ef|grep pmon
使用 kill -2 pid 或 kill -15 pid
不要使用kill -9 pid,因为如果MongoDB运行在没开户日志(--journal)的情况下,可能会造成数据损失。
36、建立复合索引
>db.test.ensureIndex({
"age"
: 1,
"no"
: 1,
"name"
: 1 })
37、查看索引命名空间
>db.tb_user.stats() 查看indexSizes的值
38、查看表数据大小:bytes
>db.sysLog.dataSize();
39、查看表分配大小,包括未使用的空间
>db.sysLog.storageSize();
40、查看表数据大小,包括索引
>db.sysLog.totalSize();
41、查看表索引大小
>db.sysLog.totalIndexSize();