MongoDB一些基本概念

来源:互联网 发布:网络主播收入排行 编辑:程序博客网 时间:2024/05/17 22:46
文档:   
    1.文档中的键/值对是有序的。
    2.文档中的值不仅可以使在双引号里面的字符串,还可以是其他几种数据类型
    3.健不能含有空字符。这个字符用来表示健的结尾
    4. .和$有特别的意义
    5.以下划线开头的键是保留的
       MongoDB不但区分类型,也区分大小写。同时也不能有重复键

集合:
    1.集合是一组文档。如果说MongoDB中的文档类似与关系数据库中的行。那么集合就是表
    2.集合石无样式的,一个集合中可以包含各种样式的文档
    3.命名方式:
        *
        *
        *
        *
    子集合:
    组织集合的一种惯例是使用"."字符分开的按命名空间划分的子集合。
        GridFS是一种存储大文件的协议,使用子集合来存储文件的元数据,这样就与内容分开。
        MongoDB的Web控制台通过子集合的方式将数据组织在DBTOP部分
        绝大多数驱动程序都提供语法。来访问指定集合的子集合提供方便。
    MongoDB中使用子集合来组织数据时很好的方法。

 数据库:
    MongoDB中的多个文档组成集合,同样多个集合就组成数据库。数据库也通过数据名字来标识(全部为小写)
    。admin
        从权限的角度来看,着是”root“数据库.要是将一个用户添加到这个数据库,这个用户将自动的继承对应的权限.一些特定的服务器命令也只能从这个数据库运行.
    。local
        这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
    。config
        当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息
把数据库的名字放在集合的前面就是集合的完全限定名。称为:命名空间。

Shell中的基本操作
       1.创建
       2.删除  
       3.修改
       4.读取 
基本数据类型:
    因为是以Json的数据格式存储的,因此存在的数据类型就只有:null,字符,数字,布尔,数组和对象几种。
    对象ID
   对象ID是文档的12字节的唯一ID
内嵌文档
      内嵌文档就是把整个MongoDB文档当做另一个文档的键的一个值。这样数据可以组织得更加自然。
 _id和ObjectId
        ObjectId是“_id”的默认类型,它涉及成轻量型的,不同的机器都能用全局唯一的同样的方法方便的生成。
创建、更新、删除文档
 1.插入并保存文档
        1.1批量插入。如果插入多个文档,使用批量插入会快些。批量、插入能传递一个由文档构成的数组给数据库。一次批量插入只是单个的TCP请求。不必要去处理大量的消息头。当单个的文档发送到数据库时,会有一个头部信息,告诉数据库对指定的集合进行插入操作。
        1.2插入:原理和作用:
                当执行插入的时候,使用的驱动程序会将数据转成BSON的形式,然后送入数据库中。数据库解析BSON,检验室否包含“_id”键并且文档不超过4MB。除此之外不做别的验证。
        1.3删除
               db.drop_collection();db.testDB.remove();前面的删除速度快于后面的删除速度,但是前面的删除会把整个集合都删除了,索引也会相应的被删除。
        1.4 更新文档
                文档存入数据库以后,就可以使用update方法来修改它。update有俩个参数,一个是查询文档,用来找出要更新的文档,另一个就是修改器,描述对找到的文档做那些修改。
                更新操作是原子的:若是俩个更新同时发生,先到服务器的先执行,接着执行另一个。所以,互相有冲突的更新可以火速传递,并不会相互干扰:最后更新会取得“胜利”
            1.4.1 文档替换
                更新 最简单的情形就是完全用一个新文档去替代匹配的文档。这使用与模式结构发生较大变化的时候。如:要对下面的用户文档做一个比较大的调整
2.使用修改器
    1.$inc 增加的修改器
    2.$addToSet 修改器只能操作集合 (可以避免重复)
    3.$push 修改器 也只能操作集合
    4.$ne  操作集合 也$addToSet的功能几乎一样
    5.$each 
3.修改器速度:
    1.数组修改器的速度要小于其他的修改器
4.返回已经更新的文档
    用getLastError仅能获得有限的信息,并不嗯能够返回已更新的文档。findAndModify命令来做到
   findAndModify命令中每个键对应的值如下所示:
        。findAndModify  字符串、集合名
        。query 查询文档,用来检索文档的条件
        。sort 排序结果的条件
        。update 修改器文档,对所找到的文档执行更新
        。remove 布尔类型,表示是否删除文档
        。new 布尔类型,表示返回的是更新前的文档还是更新后的文档,默认为更新前的文档。
     “update”和“remove”必须只有一个。要匹配不到文档,这个命令会返回一个错误。‘
  getLastError
请求和连接
        数据库会Wie每一MongoDB数据库连接创建一个队列,存放这个连接请求。当客户端发送一个请求,会放到这个队列的末尾。只有队列中的请求都执行完毕,后续的请求才会执行。所以单个连接就可以了解整个数据库,并且他总能读到自己写的东西、
0 0
原创粉丝点击