一值想总结关于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也可以用truefalse,当用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'}}, falsetrue);
相当于:update users set name = ‘changeName’ where age = 25;
db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, falsetrue);
相当于:update users set age = age + 50 where name = ‘Lisi’;
db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, falsetrue);
相当于:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
3.删除
db.users.remove({age: 132});

本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/1902910,如需转载请自行联系原作者

mong命令学习记录相关推荐

  1. mondb 常用命令学习记录

    mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

  2. Linux命令学习记录(六)

    用户管理命令,以root权限使用 adduser:添加新用户名 passwd:修改密码 deluser:删除用户 群组管理命令,以root权限使用 addgroup:添加群组 usermod:修改用户 ...

  3. linux下mkdir头文件_Linux部分常用命令学习记录

    Linux部分常用命令 ls 显示目标列表 ls -a 显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出): ls -l 以长格式显示目录下的内容列表.输 ...

  4. linux命令学习记录一

    1.tree -L 1 /        -L 1 (数字1) 表示显示"/"下目录的层次,1表示一层 CentOS6.5下tree命令-bash: tree: command n ...

  5. linux 命令学习记录

    文件操作 chown -R user file 修改文件所有者 chmod -R 777 file 修改文件权限wrx mkdir -p dir1/dir2/dir3 创建目录 rmdir -p di ...

  6. MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  7. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  8. linux命令学习(转)

    查询命令的地方:man.linuxde.net/ Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存 Linux提供了大量的命令,利用它可以有 ...

  9. add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX

    Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...

最新文章

  1. 【翻译】Apache Hbase新特性--MOB支持(一)
  2. 兼容单片机的CRC32查表计算程序的C语言实现
  3. HTTPHandler有什么作用
  4. 架构师:我们需要顶层设计
  5. 前端系统化学习【JS篇】:(一)浏览器简述
  6. 安装vim提示Depends: libpython3.5 (>= 3.5.0~b1) but it is not going to be installed的解决方法
  7. 智能睡眠监测带扣案列/APP/小程序/网站
  8. MYSQL数据库高级SQL语句详解
  9. Intel Thunderbolt 3 接口介绍
  10. B 吃雪糕(科林明伦杯)
  11. 差分隐私若干基本知识点介绍(一)
  12. 店外营销吸睛,店内体验升级丨餐饮品牌如何「吃」透数据?
  13. 在输入框加入搜索图标的问题
  14. 如何设计一个风控实验?以度小满风控实验平台架构设计为例
  15. UVALive - 4394 (区间dp)
  16. 第三集 Spring for Apache Kafka 接受消息
  17. 重t2加权是什么意思_王者荣耀中说的T0、T1,到底是啥意思?这下总算清楚了
  18. Red Hat Enterprise Linux (RHEL) 9 安装新体验
  19. 移动应用安全开发规范-安卓基础篇
  20. 家谱管理系统项目简介

热门文章

  1. 一文带你了解ARM的发展历程
  2. “没有定义根文件系统,请回到分区菜单以修正此错误”
  3. 华硕天选4和联想拯救者r9000p选哪个好
  4. QQ农场破解思路(版本20091212)
  5. Mybatis官方文档及使用简记
  6. 舞伴配对问题(顺序队列)
  7. 用计算机公式计算优良,『excel怎样合并单元格』如何在EXCEL中如何用公式计算全年级各班各科平均分、优秀率、合格率的方法...
  8. 若依ruoyi-vue总结
  9. Mysql数据库最佳性能优化
  10. 无线WiFi可以网络唤醒远程开机吗?WakeOnLan常见问题总结