mong命令学习记录
一值想总结关于mongo的命令,可能是时间问题,也是自己拖延问题,更是自己懒惰问题导致迟迟没有更新这篇文章,接下来我们就来一个一个说吧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
1. #创建用户,如果在admin库创建帐号,用户角色为root;如果在其他库下创建的帐号,用户角色为dbOwner
db.createUser( 'username' , 'passwd' )
2. #查看某个用户的角色
db.getUser( 'sa' )
3. #赋予某个用户在某个数据库上有某个角色
db.grantRolesToUser( "username" ,[{ role: "dbOwner(角色)" , db: "DBname(数据库名字)" } ])
4. #取消某个用户在某个数据库上的某个角色
db.revokeRolesFromUser( "username" , [ { role: "dbOwner(角色)" , db: "DBname(数据库名字)" } ])
5. #用户验证,返回1为验证成功,返回0为验证失败
db.auth( 'username' , 'passwd' )
6. #进入某个数据库
use DBname
7. #查看所有用户信息
db.system. users . find ();
8. #删除某个用户
db.removeUser( "xzsp" )
9. #修改用户密码,普通用户只能修改自己的密码,userAdmin角色帐号可以修改其他用户密码
# 如果用户不存在修改失败,提示用户未找到;如果用户存在什么都不提示,默认修改成功
db.changeUserPassword( 'username' , 'passwds' )
10. #显示数据库列表
show dbs
11. #显示当前数据库中的集合(类似关系数据库中的表)
show collections
12. #显示当前用户
show users
13. #显示数据库操作命令,里面有很多的命令
db.help()
14. #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.help()
15. #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo. find ()
16. #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
db.foo. find ( { a : 1 } ):
|
数据库操作命令
MongoDB没有创建数据库的命令,但有类似的命令。
如:如果你想创建一个“myTest”的数据库,线运行use myTest命令,之后做一些操作(如:
db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
1. #Help查看命令提示
help
db.help();
db.yourColl.help();
db.youColl. find ().help();
rs.help();
2. #切换/创建数据库
use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库
3. #查询所有数据库
show dbs;
4. #删除当前使用数据库
db.dropDatabase();
5. #从指定主机上克隆数据库
db.cloneDatabase( "127.0..0.1" );将指定机器上的数据库的数据克隆到当前数据库
6. #从指定的机器上复制指定数据库数据到某个数据库
db.copyDatabase( "mydb" , "temp" , "127.0.0.1" );将本机的mydb的数据复制到temp数据库中
7. #修复当前数据库
db.repairDatabase();
8. #查看当前使用的数据库
db.getName();
9. #显示当前的db状态
db.stats();
10. #当前db版本
db.version();
11. #查看当前db的连接机器地址
db.getMongo()
|
Collection聚集集合操作命令
1
2
3
4
5
6
|
1. #创建一个聚集集合(table)
db.createCollection( 'collName' ,{size:20,capped:5,max:100});
2. #查看当前db的所有集合
db.getCollectionNames();
3. #显示当前db所有集合索引的状态
db.printCollectionStats();
|
用户相关
1
2
3
4
5
6
7
8
9
|
1. #添加一个用户
db.addUser( 'name' );
db.addUser( 'userName' , 'pwd123' , true );添加用户、设置密码、是否只读
2. #数据库认证、安全模式
db.auth( "username" , 'Passwd' )
3. #显示当前所有用户
show users ;
4. #删除用户
db.removeUser( 'UserName' );
|
查看聚合集合的基本信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
1. #查看帮助
db.yourColl.help();
2. #查询当前集合的数据条数
db.yourColl.count();
3. #查看数据空间大小
db.userInfo.dataSize();
4.得到当前集合所在的db
db.userInfo.getDB();
5. #得到当前集合的状态
db.userInfo.stats();
6. #得到集合总大小
db.userInfo.totalSize();
7. #集合存储空间大小
db.userInfo.storageSize()
8. #Shard版本信息
db.userInfo.getShardVersion()
9. #集合重命名
db.userInfo.renameCollection( "users" );将userInfo重命名为 users
10. #删除当前集合
db.userInfo.drop();
|
集合查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
1. #查询所有记录
db.userInfo. find ();
#相当于:select * from userInfo;
#默认每页显示20条记录,当显示不下的情况下,可以用it迭代期命令查询下一页数据。注意:键入it命
#不能带";"但是你可以设置每页显示数据的大校,用DBQuery.shellBatchSize = 50;这样每页显示50
#条记录了。
2. #查询去掉后的当前集合中的某列的重复数据
db.userInfo.distinct( "name" );
相当于 select distict name from userinfo;
3. #查询age = 22的记录
db.userInfo. find ({ "age" : 22});
相当于: select * from userInfo where age = 22;
4. #查询age > 22的记录
db.userInfo. find ({age: {$gt: 22}});
相当于: select * from userInfo where age >22;
5. #查询age < 22的记录
db.userInfo. find ({age: {$lt: 22}});
相当于: select * from userInfo where age <22;
6. #查询age >= 25的记录
db.userInfo. find ({age: {$gte: 25}});
相当于: select * from userInfo where age >= 25;
7. #查询age <= 25的记录
db.userInfo. find ({age: {$lte: 25}});
8. #查询age >= 23 并且 age <= 26
db.userInfo. find ({age: {$gte: 23, $lte: 26}});
9. #查询name中包含 mongo的数据
db.userInfo. find ({name: /mongo/ });
// 相当于%%
select * from userInfo where name like ‘%mongo%’;
10. #查询name中以mongo开头的
db.userInfo. find ({name: /^mongo/});
select * from userInfo where name like ‘mongo%’;
11. #查询指定列name、age数据
db.userInfo. find ({}, {name: 1, age: 1});
相当于: select name, age from userInfo;
当然name也可以用 true 或 false ,当用ture的情况下河name:1效果一样,如果用 false 就是排除name,显示name以外的列信息。
12. #查询指定列name、age数据, age > 25
db.userInfo. find ({age: {$gt: 25}}, {name: 1, age: 1});
相当于: select name, age from userInfo where age >25;
13. #按照年龄排序
升序:db.userInfo. find (). sort ({age: 1});
降序:db.userInfo. find (). sort ({age: -1});
14. #查询name = zhangsan, age = 22的数据
db.userInfo. find ({name: 'zhangsan' , age: 22});
相当于: select * from userInfo where name = ‘zhangsan’ and age = ‘22’;
15. #查询前5条数据
db.userInfo. find ().limit(5);
相当于:selecttop 5 * from userInfo;
16. #查询10条以后的数据
db.userInfo. find ().skip(10);
相当于: select * from userInfo where id not in (
selecttop 10 * from userInfo
);
17. #查询在5-10之间的数据
db.userInfo. find ().limit(10).skip(5);
可用于分页,limit是pageSize,skip是第几页*pageSize
18. #or与 查询
db.userInfo. find ({$or: [{age: 22}, {age: 25}]});
相当于: select * from userInfo where age = 22 or age = 25;
19. #查询第一条数据
db.userInfo.findOne();
相当于:selecttop 1 * from userInfo;
db.userInfo. find ().limit(1);
20. #查询某个结果集的记录条数
db.userInfo. find ({age: {$gte: 25}}).count();
相当于: select count(*) from userInfo where age >= 20;
如果要返回限制之后的记录数量,要使用count( true )或者count(非0)
db. users . find ().skip(10).limit(5).count( true );
21. #按照某列进行排序
db.userInfo. find ({sex: {$exists: true }}).count();
相当于: select count(sex) from userInfo;
|
索引
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1. #创建索引
db.userInfo.ensureIndex({name: 1});
db.userInfo.ensureIndex({name: 1, ts: -1});
2. #查询当前聚集集合所有索引
db.userInfo.getIndexes();
3. #查看总索引记录大小
db.userInfo.totalIndexSize();
4. #读取当前集合的所有index信息
db. users .reIndex();
5. #删除指定索引
db. users .dropIndex( "name_1" );
6. #删除所有索引索引
db. users .dropIndexes();
|
修改、添加、删除集合数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
1.添加
db. users .save({name: ‘zhangsan’, age: 25, sex: true });
添加的数据的数据列,没有固定,根据添加的数据为准
2.修改
db.collection.update(criteria, objNew, upsert, multi )
criteria:update的查询条件,类似sql update查询内where后面的
objNew:update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内 set 后面的。
upsert : 如果不存在update的记录,是否插入objNew, true 为插入,默认是 false ,不插入。
multi : mongodb默认是 false ,只更新找到的第一条记录,如果这个参数为 true ,就把按条件查出来多条记录全部更新。
db. users .update({age: 25}, {$ set : {name: 'changeName' }}, false , true );
相当于:update users set name = ‘changeName’ where age = 25;
db. users .update({name: 'Lisi' }, {$inc: {age: 50}}, false , true );
相当于:update users set age = age + 50 where name = ‘Lisi’;
db. users .update({name: 'Lisi' }, {$inc: {age: 50}, $ set : {name: 'hoho' }}, false , true );
相当于:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
3.删除
db. users .remove({age: 132});
|
mong命令学习记录相关推荐
- mondb 常用命令学习记录
mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...
- Linux命令学习记录(六)
用户管理命令,以root权限使用 adduser:添加新用户名 passwd:修改密码 deluser:删除用户 群组管理命令,以root权限使用 addgroup:添加群组 usermod:修改用户 ...
- linux下mkdir头文件_Linux部分常用命令学习记录
Linux部分常用命令 ls 显示目标列表 ls -a 显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出): ls -l 以长格式显示目录下的内容列表.输 ...
- linux命令学习记录一
1.tree -L 1 / -L 1 (数字1) 表示显示"/"下目录的层次,1表示一层 CentOS6.5下tree命令-bash: tree: command n ...
- linux 命令学习记录
文件操作 chown -R user file 修改文件所有者 chmod -R 777 file 修改文件权限wrx mkdir -p dir1/dir2/dir3 创建目录 rmdir -p di ...
- MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...
- linux命令学习(转)
查询命令的地方:man.linuxde.net/ Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存 Linux提供了大量的命令,利用它可以有 ...
- add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX
Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...
最新文章
- 【翻译】Apache Hbase新特性--MOB支持(一)
- 兼容单片机的CRC32查表计算程序的C语言实现
- HTTPHandler有什么作用
- 架构师:我们需要顶层设计
- 前端系统化学习【JS篇】:(一)浏览器简述
- 安装vim提示Depends: libpython3.5 (>= 3.5.0~b1) but it is not going to be installed的解决方法
- 智能睡眠监测带扣案列/APP/小程序/网站
- MYSQL数据库高级SQL语句详解
- Intel Thunderbolt 3 接口介绍
- B 吃雪糕(科林明伦杯)
- 差分隐私若干基本知识点介绍(一)
- 店外营销吸睛,店内体验升级丨餐饮品牌如何「吃」透数据?
- 在输入框加入搜索图标的问题
- 如何设计一个风控实验?以度小满风控实验平台架构设计为例
- UVALive - 4394 (区间dp)
- 第三集 Spring for Apache Kafka 接受消息
- 重t2加权是什么意思_王者荣耀中说的T0、T1,到底是啥意思?这下总算清楚了
- Red Hat Enterprise Linux (RHEL) 9 安装新体验
- 移动应用安全开发规范-安卓基础篇
- 家谱管理系统项目简介