zoukankan      html  css  js  c++  java
  • MongoDB介绍

    MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling

    MongoDB 是一个开放源代码的文档型数据库。提供高性能,高可用性,自动伸缩。

    A record in MongoDB is a document, which is a data structure composed of field and value pairs. MongoDB documents are similar to JSON objects. The values of fields may include other documents, arrays, and arrays of documents.
    一条记录在MongoDB是一个文档,数据结构由:key和value组成。MongoDB的文档和JSON对象相似。字段的值可能包括其他文档、数组和文档数组。

    MongoDB stores BSON documents, i.e. data records, in collections; the collections in databases.
    MongoDB存储了BSON文档,即数据记录;数据库中的集合

    注:

    MongoDB可以创建视图
    MongoDB可以提供固定大小的集合,支持基于插入顺序插入和检索文档的高吞吐量操作。当它达到最大尺寸时自动覆盖它最古老的条目。

    MongoDB stores data records as BSON documents. BSON is a binary representation of JSON documents, though it contains more data types than JSON. For the BSON spec, see bsonspec.org. See also BSON Types.
    MongoDB将数据记录存储为BSON文档。BSON是JSON文档的二进制表示,尽管它包含比JSON更多的数据类型。对于BSON规范,请参阅bsonspec.org。参见BSON类型。

    为什么是MongoDB
    1 无数据结构限制
    没有表结构的概念,每条记录可以有完全不同的结构
    业务开发方便快捷
    2 完全的索引支持
    3 方便和冗余与扩展
    4 良好的支持
    MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
    在高负载的情况下,添加更多的节点,可以保证服务器性能。
    MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
    MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    主要特点:
    MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易
    你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 GandhiRoad")来实现更快的排序
    你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性
    如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片
    Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组
    MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言

    可视化工具:
    http://www.mongoing.com/archives/3651
    NoSQL Manager for MongoDB
    robomongo
    MongoClient

    SQL术语/概念MongoDB术语/概念解释/说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    table joins   表连接,MongoDB不支持
    primary key primary key 主键,MongoDB自动将_id字段设置为主键

    show dbs显示所有数据库

    > show dbs
    admin    0.000GB
    ceshidb  0.000GB
    config   0.000GB
    local    0.000GB
    >

     db 命令可以显示当前数据库对象或集合

    > db
    test
    >

    use命令,可以连接到一个指定的数据库

    > use ceshi
    switched to db ceshi

    数据库名字取名规范:
    任意UTF-8字符串:
    不能是空字符串("")
    不得含有' '(空格)、.、$、/、和 (空字符)
    应全部小写
    最多64字节

    mongodb自带的保留数据库:
    admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
    local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
    config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

    集合
    集合就是 MongoDB 文档组,类似与关系型数据库中的表。
    集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
    比如,我们可以将以下不同数据结构的文档插入到集合中:
    {"site":"www.baidu.com"}
    {"site":"www.google.com","name":"Google"}
    {"site":"www.runoob.com","name":"菜鸟教程","num":5}
    当第一个文档插入时,集合就会被创建。

    合法的集合名
    集合名不能是空字符串""。
    集合名不能含有字符(空字符),这个字符表示集合名的结尾。
    集合名不能以"system."开头,这是为系统集合保留的前缀。
    用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。

    文档
    文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
    注意:
    文档中的键/值对是有序的。
    文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
    MongoDB区分类型和大小写。
    MongoDB的文档不能有重复的键。
    文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
    文档键命名规范:
    键不能含有 (空字符)。这个字符用来表示键的结尾。
    .和$有特别的意义,只有在特定环境下才能使用。
    以下划线"_"开头的键是保留的(不是严格要求的)。

    MongoDB数据类型
    String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
    Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
    Boolean 布尔值。用于存储布尔值(真/假)。
    Double 双精度浮点值。用于存储浮点值。
    Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
    Array 用于将数组或列表或多个值存储为一个键。
    Timestamp 时间戳。记录文档修改或添加的具体时间。
    Object 用于内嵌文档。
    Null 用于创建空值。
    Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
    Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
    Object ID 对象 ID。用于创建文档的 ID。
    Binary Data 二进制数据。用于存储二进制数据。
    Code 代码类型。用于在文档中存储 JavaScript 代码。
    Regular expression 正则表达式类型。用于存储正则表达式

    参考:

    https://docs.mongodb.com/manual/introduction/

    http://www.runoob.com/mongodb/mongodb-tutorial.html

  • 相关阅读:
    JZOJ 3034. 【NOIP2012模拟10.17】独立集
    JZOJ 3035. 【NOIP2012模拟10.17】铁轨
    JZOJ 1259. 牛棚安排
    数位DP JZOJ 3316. 非回文数字
    JZOJ 3046. 游戏
    JZOJ 3013. 填充棋盘
    debian 安装oracle提供的java8
    java 汉字转拼音 PinYin4j
    debian ssh设置root权限登陆 Permission denied, please try again
    java并发下订单生成策略
  • 原文地址:https://www.cnblogs.com/kxm87/p/9517199.html
Copyright © 2011-2022 走看看