古人学问无遗力,少壮工夫老始成。这篇文章主要讲述android开发学习 ------- MongoDB数据库简单理解相关的知识,希望能为你提供帮助。
首先说一下MongoDB是什么?
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 是一个基于分布式文件存储的数据库。
NoSQL (not only sql)是对不同于传统的关系型数据库的数据库管理系统的统称。不需要遵循关系型数据库的ACID规则,
用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
************************************************************************************
关系型和非关系型的对比:
RDBMS
-
高度组织化结构化数据
-结构化查询语言(SQL) (SQL)
-
数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
-键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性
NoSQL强调
Key-Value
Stores
和
文档数据库
的优点,而不是单纯的反对RDBMS。
NoSQL的优点/缺点优点:
- - 高可扩展性
- - 分布式计算
- - 低成本
- - 架构的灵活性,半结构化数据
- - 没有复杂的关系
- - 没有标准化
- - 有限的查询功能(到目前为止)
- - 最终一致是不直观的程序
MongoDB是文档存储类型的,文档存储一般用类似json的格式存储,数据结构由键值(key=> value)对组成,存储的内容是文档型的。
这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。
******************************************************************************
MongoDB的安装配置:
这个自己百度,教程很多,https://jingyan.baidu.com/article/e52e36156372ce40c60c5194.html
http://www.runoob.com/mongodb/mongodb-window-install.html
安装好测试成功之后,安装可视化工具 Robomongo.
反正我当时在安装配置和连接的时候碰到好多坑,当时也没记录,总之都是百度可以解决的问题。
*******************************************************************************
RDBMS 与 MongoDB 对应的术语:
文章图片
文章图片
文章图片
- 文档中的键/值对是有序的。
- 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
- MongoDB区分类型和大小写。
- MongoDB的文档不能有重复的键。
- 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
了解了上述基本概念后,最重要还是CRUD操作。
show dbs:显示数据库列表
文章图片
show collections:显示当前数据库中的集合(类似关系数据库中的表)
文章图片
use db name:切换当前数据库 - 将local切换为admin
文章图片
db.dropDatabase(); 删除当前数据库
db.getMongo(); 查看当前db的链接机器地址
文章图片
显式地创建一个新的集合:
db.createCollection(<
name>
, { capped: <
boolean>
,
autoIndexId: <
boolean>
,
size: <
number>
,
max: <
number>
,
storageEngine: <
document>
,
validator: <
document>
,
validationLevel: <
string>
,
validationAction: <
string>
,
indexOptionDefaults: <
document>
} )
文章图片
这个命令创建名字为“user”,最大存储空间为 5m,最多 5000 个文档的集合.
添加数据:没有固定的列,根据添加的数据为准。
文章图片
修改数据 :相当于 update user set name=\'王五\' where age = 33;
文章图片
删除数据:
文章图片
查询数据:
1: select * from user;
文章图片
文章图片
2: select distict name from user; 过滤掉name中的相同数据。
根据列过滤数据 。
文章图片
3: select * from user where age = 15;
文章图片
4: select * from user where age > 15;
文章图片
5: select * from user where age < 22;
文章图片
【android开发学习 ------- MongoDB数据库简单理解】6:select * from user where age > = 25;
文章图片
7: select * from user where age < = 25;
文章图片
8:
文章图片
9: select * from user where name like \'%呵%\'; 模糊查询
文章图片
10: select name, age from user;
文章图片
当然name也可以用true或false,当用ture的情况下河name:1效果一样,如果用false就是排除name,显示name以外的列信息。
文章图片
文章图片
11:select name, age from user where age > 25; 查询指定列的数据。
文章图片
12:按照年龄升序排列
文章图片
文章图片
降序排
13:select * from user where name = \'呵呵\' and age = \'85\'
文章图片
14:select top 2 * from user; 查询前两条数据
文章图片
15:查询2条以后的数据
文章图片
16:查询在 2-4 之间的数据。可用于分页,limit是pageSize,skip是第几页*pageSize
文章图片
17:select * from user where age = 15 or age = 85;
文章图片
18:查询第一条数据
文章图片
19:查询某个结果集的记录条数 select count(*) from user where age > = 15;
文章图片
平时我用到的查询语句就是这么多了,更多的语句参考 https://www.cnblogs.com/garinzhang/p/mongoDB_basic_usage.html
推荐阅读
- 第一课(安卓模拟器的介绍与应用)
- Android获取通讯录并上传(包含通讯录加密)
- (转)APP测试教福利(Appium 国内下载地址(百度云盘,已更新至 1.3.4.1))
- Android 卡顿优化 1 卡顿解析
- appium中点击操作
- zabbix自发现监控应用app里的url例子
- Android ANR优化 1
- class file for org.springframework.context.ConfigurableApplicationContext not found 解决方法
- android studio 3.0 hello world 之 修改系统状态栏颜色