MongoDB笔记

MongoDB官网:
https://www.mongodb.org
官网的下载页面:
https://www.mongodb.org/downloads
官方文档关键词索引页面:点击这里
MongoDB中文社区:
http://www.mongoing.com


mongodb基础知识

数据库名可以是满足以下条件的任意UTF-8字符串:

  • 不能是空字符串( "" )。
  • 不得含有 空格.$/\\\\0 (空字符)。
  • 应尽量全部小写,因为数据库名并不区分大小写。
  • 不能为空,且少于64个字符。
  • 在windows下最好别用/\. "$*<>:|?中的任何一个,更不允许包含null。
  • 在类unix的系统下最好别用/\. "$,当然也包括null。

有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。

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

集合名必须以下划线或字母开头,且禁止:

  • 包含$
  • 包含空字符串,即""。
  • 包含null字符。
  • system.前缀开头(系统保留使用)

域名field不允许包含.或null字符,而且不能以美元符号$开头


关于operator,点击MongoDB(operator)
关于集合的操作,点击MongoDB(operation)
关于MongoDB的引擎,点击MongoDB(引擎)
关于索引部分,点击MongoDB(index)
关于聚合部分,点击MongoDB(聚合)

差不多上手了之后,一些存在的细节问题只能在实际操作中发现。可以选pymongo来实操了,基本的入门大概是这样的:pymongo日记


收集来的关于MongoDB的优劣的讨论:

收集文章

浅析MongoDB数据库的海量数据存储应用

MongoDB的主要特点

(1)文件存储格式为Bson,使用易于掌握和理解的Json风格语法。相对Json来说,Bson拥有更好的性能,主要表现为更快的遍历速度、操作更简易、增加了额外的数据类型。
(2)模式自由,支持嵌入子文档和数组,无需事先创建数据结构,属于逆规范化的数据模型,有利于提高查询速度。
(3)动态查询,支持丰富的查询表达式,使用Json形式的标记,可轻易查询文档中内嵌的对象和数组及子文档。
(4)完整的索引支持,包括文档内嵌对象和数据,同时还提供了全文索引方式,MongoDB的查询优化器会分析查询表达式,并生成一个高效的查询计划。
(5)使用高效的二进制数据存储,适合存储大型对象(如高清图片、视频等)。
(6)支持多种复制模式,提供冗余及自动故障转移。支持Master-Slave、Replica Pairs/Replica Sets、有限Master-Master模式。
(7)支持服务端脚本和Map/Reduce,可以实现海量数据计算,即实现云计算功能。(8)性能高、速度快。在多数场合,其查询速度对于MySQL要快的多,对于CPU占用非常小。部署很简单,几乎是零配置。
(9)自动处理碎片,支持自动分片功能实现水平扩展的数据库集群,可以动态添加或移除节点。
(10)内置GridFS,支持海量存储。
(11)可通过网络访问,采用高效的MongoDB网络协议,在性能方面要优于http或Rest协议。
(12)第三方支持丰富,MongoDB社区活跃,越来越多的公司和网站在生产环境中使用MongoDB进行技术架构优化,同时由10gen公司官方提供强大技术支持。

MongoDB的适用场景

MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。
(1)网站数据:MongoDB非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
(2)缓存:由于性能很高,MongoDB也适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。
(3)大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
(4)高伸缩性的场景:MongoDB非常适合由数十或数百台服务器组成的数据库。MongoDB的路线图中已经包含对MapReduce引擎的内置支持。
(5)用于对象及JSON数据的存储:MongoDB的Bson数据格式非常适合文档化格式的存储及查询。


未完待续。。。。。

推荐阅读更多精彩内容

  • 这里是阅读了《MongoDB权威指南》后做的相关笔记。 一、文档 文档是MongoDB的核心概念。文档就是键值对的...
    yjaal阅读 304评论 0 4
  • Mongodb 配置选项 通常在mongod.conf中 配置文件 设置了配置文件后启动时以自定义的配置文件启动:...
    AkaTBS阅读 541评论 0 6
  • 以下无权限的命令请使用sudo,或在root下操作 一、安装mongodb 1. 创建yum源文件: 2. 写入源...
    天一生水_AL阅读 379评论 0 3
  • 一、插入并保存文档 可以使用insert方法向目标集合插入一个文档: 这个操作会给文档自动增加一个"_id"键(要...
    yjaal阅读 434评论 0 0
  • 今天孩子学校报名了,美丽美好的校园,年轻的孩子们象清新的风,明亮干净,生气勃勃,有一种很感染人的气息能量。 我看着...
    何翎榕阅读 29评论 0 0