mongodb_命令行
一、打开命令行
三、常用命令行(管理)
- show dbs:显示数据库列表
- db.getName():查看当前数据库
- db.dropDatabase():删除当前数据库
- db.stats():查看当前数据库状态
- db.getMongo():查看当前链接的机器
- db.version():查看当前数据库版本
- use <dbName>:切换数据库
- show collections:显示当前数据库中的集合(类似关系数据库中的表)
- show users:显示用户
- db.addUser("name");:添加用户
- db.removeUser("userName");:删除用户
- db.auth("userName", "123123");:用户验证
- 创建管理员用户
use admindb.createUser({user: "sa1",pwd: "sa1",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
- db.help():显示数据库操作命令,里面有很多的命令
- db.<collections>.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
四、常用命令行(集合)
- 创建一个聚集集合(table): db.createCollection(“ collectionName”, {size: 20, capped: 5, max: 100});
- 得到指定名称的聚集集合(table):db.getCollection("collectionName");
- 得到当前db的所有聚集集合:db.getCollectionNames();
- 显示当前db所有聚集集合的状态: db.printCollectionStats();
- 查询当前集合的数据条数:db.<collectionName >.count();
- 当前集合状态:db.<collectionName >.stats();
- 当前集合大小:db.<collectionName>.totalSize()
- 当前集合存储空间:db.<collectionName>.storageSize();
- 当前集合重命名:db.<collectionName>.renameCollection("users")
- 删除当前集合:db.<collectionName>.drop();
五、常用命令行(索引)
- 创建索引
db.userInfo.ensureIndex({name: 1});db.userInfo.ensureIndex({name: 1, ts: -1}); --联合索引 - 查询当前集合所有索引
db.userInfo.getIndexes();
- 查看总索引记录大小
db.userInfo.totalIndexSize();
- 读取当前集合的所有索引信息
db.users.reIndex();
- 删除指定索引
db.users.dropIndex("name
");
- 删除集合所有索引
db.users.dropIndexes();
六、常用命令行(查询)
- 集合查询帮助:db.<collectionName>.find().help()
- 集合查询结果美化:db.< collectionName >.find().pretty():对于当前数据库中的foo集合进行数据查找(会列出所有数据)
db.foo.find( { a : 1 } ):按条件查询数据 - 去掉指定列相同的数据:db.<collectionName>.distinct("name")
相当于:select distict name from userInfo;
- 比较查询:db.<collectionName>. find({age: {$gt: 22}}); 大于:$gt 大于:$lt 大于等于:$gte 大于等于:$lte
- 多个查询条件
db.<collectionName>. find({age: {$gte: 23, $lte: 26},name:'james'}); - 包含like查询
db.<collectionName>. find({name: /mongo/}); (相当于'%mongo%')db.<collectionName>. find({}, {name: 1, age: 1});. find({name: /^mongo/}); (相当于'mongo%') - Or 条件查询
db.<collectionName>
.find({$or: [{age: 22}, {age: 25}]}); - 查询指定列:db.<collectionName>. find({}, {name: 1, age: 1});
- 查询范围内数据
查询前5条数据:db.<collectionName>. find().limit(5)查询5条后数据:db.<collectionName>. find().skip(5)
查询5-10条数据:db.<collectionName>. find().limit(10).skip(5):
查询一条数据:db.<collectionName>. findOne() <=>find().limit(1)<=> top 1 - 查询记录数量:db.<collectionName>.find({$or: [{age: 22}, {age: 25}]}).count()
七、常用命令行(增删改)
- 新增数据:db.users.save({name: ‘zhangsan’, age: 25, sex: true});
- 修改数据
第三个参数是upsert;第四个参数是multi。true:更新匹配到的所有文档,false:更新匹配到的第一个文档,默认值
db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true); (相当于update age=age+50)db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true); (相当于update age=age+50,name='holo') - 删除数据:db.users.remove({age: 132});
- 查询并修改数据
db.users.findAndModify({query: {age: {$gte: 25}},sort: {age: -1},update: {$set: {name: 'a2'}, $inc: {age: 2}},remove: true
});
db.COLLECTION_NAME.findAndModify({query:{},
update:{},
remove:true|false,
new:true|false,
sort:{},
fields:{},
upsert:true|false});
query是查询选择器,与findOne的查询选择器相同
update是要更新的值,不能与remove同时出现
remove表示删除符合query条件的文档,不能与update同时出现
new为true:返回个性后的文档,false:返回个性前的,默认是false
sort:排序条件,与sort函数的参数一致。
fields:投影操作,与find*的第二个参数一致。
upsert:与update的upsert参数一样
mongodb_命令行的更多相关文章
- Cmder--Windows下命令行利器
cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- 让 windows 下的命令行程序 cmd.exe 用起来更顺手
在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...
- 利用Node.js的Net模块实现一个命令行多人聊天室
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...
- Java程序:从命令行接收多个数字,求和并输出结果
一.设计思想:由于命令行接收的是字符串类型,因此应先将字符串类型转化为整型或其他字符型,然后利用for循环求和并输出结果 二.程序流程图: 三.源程序代码: //王荣荣 2016/9/23 ...
- Android 在Android代码中执行命令行
1.路径最好不要是自己拼写的路径/mnt/shell/emulated/0/wifidog.conf 最好是通过方法获取的路径,不然可能导致命令无效 (挂载点的原因) public static f ...
- windows下的命令行工具babun
什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...
- 像黑客一样使用 Linux 命令行
前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...
- python处理命令行参数
直接从命令行执行py文件的时候如果带有参数,如何获取这些参数,如何解析? http://blog.chinaunix.net/uid-20786165-id-3182268.html sys.argv ...
随机推荐
- 【BZOJ】5010: [Fjoi2017]矩阵填数
[算法]离散化+容斥原理 [题意]给定大矩阵,可以每格都可以任意填1~m,给定n个子矩阵,要求满足子矩阵内的最大值为vi,求方案数. n<=10,h,w<=1w. [题解] 此题重点之一在 ...
- CSS3 文本效果(阴影)
CSS3中包含几个新的文本特征. 在本章中您将了解以下文本属性: text-shadow box-shadow text-overflow word-wrap word-break CSS3 的文本阴 ...
- Django【进阶】权限管理
一.权限 RBAC:role basic access control 1.什么是权限: 一个权限就是一个url,不同个权限对应不同的url,拥有权限即可以访问这个url. 2.权限划分: 如 ...
- (转)Git冲突:commit your changes or stash them before you can merge. 解决办法
用git pull来更新代码的时候,遇到了下面的问题: error: Your local changes to the following files would be overwritten by ...
- C++ Primer 阅读笔记:迭代器和容器 小结
原创 by zoe.zhang 0.写在前面的话 我是在2011年学的C++,但是那一年恰好是C++11新标准的一年,但是大学上学的C++还是基于C++98的风格的,使用的编译器也是VC6.0,啊, ...
- 编译cuda Examples 时出现错误:/bin/ld cannot find -lglut
编译cuda Examples 时出现错误:/bin/ld cannot find -lglut ,可以先找找是否缺少库,有时候可能是symbolic link不正确,没有链接到正确位置,导致找不到库 ...
- Java 的初始化顺序
初始化顺序: 1.将对象内存空间初始化为二进制0(所有的数据成员被设为默认值) 2.如果该类有基类则初始化其基类(调用默认基类构造器,也可在子类构造器中指定调用基类的某个构造器) 3. 静态成员和静态 ...
- 如何正确学习web前端流程以及如何找工作
解释一下web前端工作是做啥的,Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发.完成客户端程序(也就是浏览器端)的开发 ...
- Hydra--密码破解的神器
原来不止burpsuit.sqlmap是神器,还有Hydra. 虽久闻大名,却未曾使用,今天偶然用到,发现支持的服务那真是多,ftp.ssh.smtp.imap.http...,而且支持ssl 可以想 ...
- PHP serialize 和 JSON 解析与区别
PHP serialize 和 JSON 解析与区别 对于JSON(JavaScript Object Notation)大家应该不陌生,它是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器 ...