Mongodb-introduction
工作中用到的NoSQL主要是Redis,但MongoDB作为一种很重要的NoSQL数据库,对它一直也有好奇,这里简单(实际是非常简单)的梳理下MongoDB的相关知识,如果以后用到再做深入了解。
一. MongoDB vs Redis 1. MongoDB是基于文档的存储,Redis是基于键值的存储 2. MongoDB更接近传统SQL,Redis更接近Memcached 3. MongoDB更适合持久化存储,Redis适合做缓存 4. MongoDB更适合复杂的查询,Redis适合简单的查询
二. MongoDB定义 基于文档的存储,比较适于文档类型的信息存储,比如一篇包含评论的博客,可以把博客视为一种文档,评论视为其中的子文档保存在文档中。
MongoDB中的一条记录就是一个文档,MongoDB的文档很类似JSON对象,文档中value的内容可能是另外一个文档,组合或者文档的组合。
一条文档记录的格式如下,很类似一个JSON对象:
{
name:"linpingta",
age:27,
work:'Y',
groups: ['BJ', 'China']
}
三. MongoDB安装与启动
MongoDB的官网看起来有点乱,似乎有很多商业应用方面的产品,下载可以参考这里。
安装完成后,在命令行运行mongod,默认将在本机的20717端口对外提供服务。
四.客户端支持
MongoDB官方支持主要语言的客户端,包括C++/Java/Python/NodeJS/C#。
五.特性
1.high performance:高性能的持久化存储 2.replica set:高可用,支持复制,数据冗余 3.horizontal scalability:支持数据的水平扩展 4.rich query language:CRUD操作
六.数据结构
MongoDB通过BSON格式存储文档记录,保存在collection中。一个database中可能包含多个collection,每个collection则包含了具体的document。