MongoDB学习(一)简介

本篇主要简单介绍一下MongoDB数据库。

一、简介

mongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像关系数据库的。

mongoDB由C++编写,其名字来源于"humongous"这个单词,其宗旨在于处理大量数据。

mongoDB可以运行在Windows、unix、OSX、Solaris系统上,支持32位和64位应用,提供多种编程语言的驱动程序。

mongoDB支持的数据结构非常松散,是类似json的BSON格式,通过键值对的形式存储数据,可以存储复杂的数据类型。

mongoDB支持的数据类型有:null、boolean、String、objectId、32位整数、64位整数、64位浮点数、日期、正则表达式、js代码、二进制数据、数组、内嵌文档、最大值、最小值、未定义类型。

其中,内嵌文档我理解的并不是.doc.txt等文件,这里所指的文档是mongoDB的一个存储单元(相当于关系型数据当中的记录),在mongoDB中的表现形式为{key1:value1,key2:value2},而内嵌文档则是这样的形式{key1:value1,key2:{key2.1:value2.1,key2.2:value2.2}}。

mongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

二、mongoDB的特性:

1. 面向集合存储。数据被分组到若干集合,每个集合可以包含无限个文档,可以将集合想象成RDBMS的表,区别是集合不需要进行模式定义。

2. 模式自由。集合中没有行和列的概念,每个文档可以有不同的key,key的值不要求一致的数据类型。

3. 支持动态查询。mongoDB支持丰富的查询表达式,查询指令使用json形式表达式。

4. 完整的索引支持。mongoDB的查询优化器会分析查询表达式,并生成一个高效的查询计划。

5. 高效的数据存储,支持二进制数据及大型对象(图片、视频等)。

6. 支持复制和故障恢复。

7. 自动分片以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器。

三、 mongoDB的适用场景:

1.  适合作为信息基础设施的持久化缓存层

2. 适合实时的插入、更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性

3. 适合文档化格式的存储及查询

4. 适合由数十或数百台服务器组成的数据库

四、mongoDB不适用场景:

1. 要求高度事务性的系统。例如对于银行或会计等需要大量原子性复杂事物的应用程序来说,还是需要关系型数据库的。

2. 传统的商业智能应用

3. 复杂的表级联查询

时间: 2024-10-10 21:24:34

MongoDB学习(一)简介的相关文章

mongodb学习笔记系列一

一.简介和安装 ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017 mongodb非常的占磁盘空间, 刚启动后要占3-4G左右,--smallfiles 二.基本命令 1.登录mongodb client /use/local/mongo 2.查看当前数据库 show databases; show dbs; 两个可能 3.admin是和管理有关的库,local 是放schema有关

Mongodb学习笔记一(Mongodb环境配置)

mongodb学习 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0;

MongoDB学习总结(二)

前言:学习札记! MongoDB学习总结(二) 1.  安装.初识 之前写过一篇MongoDB的快速上手文章,里边详细的讲了如何安装.启动MongoDB,这里就不再累述安装过程,简单介绍一下Mongodb的基本操作. 打开命令行窗口,输入“mongo”命令,默认会连接到test数据库. l  Insert db.person.insert({"name":"Olive","age":18}) db.person.insert({"nam

MongoDB之TextSearch简介

MongoDB之TextSearch简介  MongoDB支持对文本内容执行文本搜索操作,其提供了索引text index和查询操作$text来完成文本搜索功能.下面我们通过一个简单的例子来体验一下MongoDB提供的全文检索功能. 1.新建blogs collection,并插入如下的document. db.blogs.insert({_id:1,title:"MongoDB text search",content:"this is a simple MongoDB t

MongoDB学习笔记系列

回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助和启发,文章中有对新技术的研究(Mongo驱动),对老技术的回顾(代码重构),还有对架构设计的阐述等(面向接口编程,对扩展开放,对修改关闭,所以出现了IMongoRepository接口). MongoDB学习笔记系列~目录 MongoDB学习笔记~环境搭建 (2015-03-30 10:34) M

MongoDB学习笔记一:MongoDB的下载和安装

趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库.将自己今天学习到的写成博客分享给大家. 一.MongoDB的下载和安装 MongoDB的下载地址为:http://www.mongodb.org/ 1.进入官网的首页后,在首页的右上方单击Downloads连接,如图所示: 2.在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单

MongoDB 数据库,对象,集合 MongoDB学习平台

http://www.w3cschool.cc/mongodb/mongodb-databases-documents-collections.html MongoDB 数据库,对象,集合 描述 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. 在MongoDB中可以创建数据库,如果你想使用Mongo

MongoDB学习笔记(一:安装时出现The default storage engine 'wiredTiger' is not available问题解决)

今晚在自己老式笔记本来试了一下MongoDB的安装,由于配置比较低,只能选择32位版本的MongoDB进行安装,在安装过程中碰到了上述标题所示错误,自己也捣鼓了一个小时左右,终于在一篇博客中找到答案,具体原文链接如下:http://blog.csdn.net/u013457382/article/details/50775268 MongoDB学习笔记(一:安装时出现The default storage engine 'wiredTiger' is not available问题解决)

Mongodb学习笔记

总结下这几天Mongodb学习笔记 /** * 获取MongoClient * @author xuyw * @email [email protected] * @param host * @param port * @return */ public static MongoClient getMongoClient(String host, int... port) { MongoClient mongoClient = null; int portlen = 0; try { if (p

[Spring Data MongoDB]学习笔记--建立数据库的连接

1. 有了上一篇的Mongo后,连接数据库我们还需要更多的信息,比如数据库名字,用户名和密码等. 我们可以继续来配置MongoDbFactory的实例. public interface MongoDbFactory { DB getDb() throws DataAccessException; DB getDb(String dbName) throws DataAccessException; } 然后我们可以继续用MongoDbFactory来创建MongoTemplate的实例. pu