MongoDB基础学习

简介

首先介绍一下分布式文件存储系统

        分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。

         MongDB是非关系型的数据库,就是把数据直接放进一个大仓库,不标号、不连线,单纯的堆起来。由于如今产生的数据非常的庞大,传统的关系型数据库已经不能够完全满足业务需求,所以出现了noSQL(非关系型的数据库)。由于关系型数据库存储对数据之间存在高度的关联,在数据量达到上万亿比特时,关系型数据库所特有的约束和关联就会成为性能瓶颈。非关系型数据库采用了另一种思维方式,即不考虑数据之间千丝万缕的联系,存储也不需要固定的模式,这样无需多余的操作就能成倍地扩展数据量。

          MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。

基础知识点

  • 文档

              文档是 MongoDB 的核心,类似于 SQLite 数据库(关系数据库)中的每一行数据。多个键及其关联的值放在一起就是文档。在 Mongodb 中使用一种类 json 的 bson 存储数据,bson 数据可以理解为在 json 的基础上添加了一些 json 中没有的数据类型。 文档有两种逻辑联系:嵌入式(把一个文档嵌入到另一个),引用式(把两个文档分开,通过引用文档的_id字段来建立联系)。

  • 集合

               集合就是一组文档的组合,相当于关系数据库中的表。

命令集合

  1. show dbs  查看所有数据库的列表
  2. db              查看单签数据库对象或者集合
  3. use             连接到指定数据库(没有就新建)
  4. db.system.namespaces   列出所有名字空间
  5. db.system.indexs             列出所有索引
  6. db.system.profile             列出数据库概要信息
  7. db.system.users              列出访问数据库的用户
  8. db.system.sources           列出服务器信息
  9. db,dropDatabase()          销毁数据库
  10. db.createCollection("xxxx")     创建一个集合(capped固定大小集合与size搭配,autoIndexId是否自动创建索引,max最大文档数)
  11. show collections               查看创建的集合
  12. db.xxxx.drop()                删除xxxx集合
  13. db.xxxx.insert()           插入数据(不能插入一条已经存在的数据)
  14. db.xxxx.save()            插入数据(可以插入一条存在的记录,结果是更新原纪录)
  15. db.xxx.find()             返回xxx集合中的所有文档(当传入多个键值对时,会自动将他作为AND查询处理)
  16. db.xxx.find().pretty()      使上一条返回的结果更美观
  17. db.xxx.find(){  $or : [ {....} {....} ]  }    or查询
  18. {$gt:10} 表示大于10    gt:大于  lt 小于 gte 大于等于  lte小于等于 ne 不等于
  19. MongoDB的模糊查询可以用正则匹配的方式实现
  20. db.xxx.update({查询条件}{更新的信息})    更新已经存在的文档
  21. db.xxx.remove({查询条件})                        删除文档
  22. $type:x              条件操作符,用于选定文档记录是x类型
  23. db.xxxx.find().limit(1)              读取指定数量的记录,默认是排在最前面的那一条
  24. db.xxxx.find().skip(1)              读取时跳过指定数量的数据记录
  25. db.xxxx.find().sort({"xxx":1})   查找结果排序,1升序,-1降序
  26. db.xxxx.createIndex(keys,options)     创建索引,keys为要穿件的索引字段,1升序,-1降序
  27. db.xxxx.aggregate()        聚合(类似于sql中的count)                                                                                                                                               
    1.$project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。 
    2.$match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
    3.$limit:用来限制MongoDB聚合管道返回的文档数。
    4.$skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。 
    5.$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
    6.$group:将集合中的文档分组,可用于统计结果。
    7. $sort:将输入文档排序后输出。
    8.$geoNear:输出接近某一地理位置的有序文档。
    9.$sum 计算和
    10.$avg  平均值
    11.$min   最小值
    12.$max   最大值
    13.$push    在结果文档中插入值到一个数组中
    14.$addToSet     在结果文档中插入值到一个数组中,但不创建副本
    15.$first          根据资源文档的排序获取第一个文档数据
    16.$last           跟局资源文档的排序获取最后一个文档数据
  28.                                                                    

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值