首先说一下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 对应的术语:

  1. 文档中的键/值对是有序的。
  2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
  3. MongoDB区分类型和大小写。
  4. MongoDB的文档不能有重复的键
  5. 文档的键是字符串。除了少数例外情况,键可以使用任意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;

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

转载于:https://www.cnblogs.com/mengxiao/p/8480512.html

android开发学习 ------- MongoDB数据库简单理解相关推荐

  1. android开发学习大体思路

    android开发学习: android学习的前提是java基础.如果你没有好的java基础,那就赶紧补充,我在这里不做介绍. android是基于linux的,如果你要做底层的东西,可以买一些关于l ...

  2. android开发用百度识别图片格式,Android开发学习之路-机器学习库(图像识别)、百度翻译...

    对于机器学习也不是了解的很深入,今天无意中在GitHub看到一个star的比较多的库,就用着试一试,效果也还行.比是可能比不上TensorFlow的,但是在Android上用起来比较简单,毕竟Tens ...

  3. 《Android Studio应用开发实战详解》——第1章,第1.5节Android开发学习路线图

    本节书摘来自异步社区<Android Studio应用开发实战详解>一书中的第1章,第1.5节Android开发学习路线图,作者 王翠萍,更多章节内容可以访问云栖社区"异步社区& ...

  4. android培训内容明细,记录Android开发学习

    记录Android开发学习 Menu菜单学习 1.掌握Android中菜单的创建. 2.掌握Intent信使组件. 创建菜单Menu 我们模仿微信菜单栏学习,创建一个于微信菜单栏相似的菜单 那么我们应 ...

  5. android开发学习之路——连连看之游戏逻辑(五)

    GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖, ...

  6. android动画背景,Android开发之背景动画简单实现方法

    在Android开发中,我们都会接到项目的业务需求,实现应用程序背景动画的效果,接下来,爱站技术频道小编带给大家的Android开发之背景动画简单实现方法. 1.先创建动画层,有三张图片 androi ...

  7. 【嵌入式Android开发学习攻略】手把手教你循序渐进的学习

    [嵌入式Android开发学习攻略]手把手教你循序渐进的学习 学习嵌入式主要有以下几个方面: C语言:C是必须学的,它是最基础的 操作系统:Linux.Android   目前Linux是主流,这个一 ...

  8. Android Studio学习记录之简单的页面切换及宫格菜单

    Android Studio学习记录之简单的页面切换及宫格菜单 之前上课听老师讲的一些东西自己其实并没有消化,今天把不懂的都去网上搜了一下,有了一种恍然大悟的感觉,包括很多方方面面的东西.有些东西听说 ...

  9. Android开发学习之以CameraAPI方式实现相机功能(一)——快速实现相机

    今天无意当中发现在<Android开发学习之基于ZBar实现微信扫一扫>中的一部分代码可以用来以硬件方式实现一个照相机的功能,在<Android开发学习之调用系统相机完成拍照的实现& ...

最新文章

  1. 谁能搞定中国的文艺复兴,我就能搞定中国的政治改革
  2. 针对java程序员的好书目录 各帖总结与收集,自用送礼两相宜
  3. *【CodeForces - 1150D】Three Religions(dp,预处理,思维)
  4. JanusGraph: 可视化 Gephi 插件安装
  5. IntelliJ IDEA 导入项目后出现非法字符解决方法
  6. java setr()_Java RPr.setRFonts方法代码示例
  7. qt获取当前正在编辑的文件名和路径_node学习——path 路径模块
  8. leetcode:Minimum Path Sum(路线上元素和的最小值)【面试算法题】
  9. 基于自适应惯性权重的樽海鞘群算法
  10. 京东宙斯php版本sdk不能用_一个SDK引发的“血案”
  11. LeetCode,无它,唯手熟尔(一)
  12. 计算机网络世界(知识扫盲一)
  13. php微信退款aes,关于微信支付退款req_info字段解密问题
  14. 软考查缺补漏?这篇《软件知识产权基础知识考点整理》了解一下?
  15. php 发送邮箱验证怎么做,PHP 实现 注册等的邮箱验证 (二)—— 使用 PHPMailer 发送邮件...
  16. JS基础 Set 用于存储任何类型的唯一值
  17. 100条超搞笑的“雷人”QQ/MSN 签名
  18. 现在智能机怎么玩Java游戏,教你如何用安卓机玩JAVA老游戏
  19. 新旧笔记本电脑怎么样转移数据?换电脑数据如何迁移
  20. BRDF·基于物理的着色技术学习总结

热门文章

  1. Linux常用命令汇总-cut
  2. ShaderLab Syntax 基本语法
  3. 《NoSQL For Mere Mortals》书评与作者问答录
  4. openstack之keystone
  5. C++头文件中预编译宏的目的
  6. 中交兴路完成7亿元A轮融资,携手蚂蚁金服共建小微物流科技服务生态
  7. React 回忆录(三)使用 React 渲染界面
  8. Spring Boot 、Spring Data JPA、Hibernate集成
  9. 25.2. String
  10. Go -- 配置监控系统