这是我摘抄对mongodb的介绍:
对于大数据量、高并发、弱事务的互联网应用,MongoDB则是一个如瑞士军刀般的利剑。-- 说明了mongodb出现的环境例如:为了产品中的某个实体的查询操作,我们需要把一个本属于该实体的数据拆分至另一个表中,以便进行连接查询。于是无论是创建,删除还是更新,我们要涉及的操作便增加了许多。更别说互联网项目时刻都在发展和变动,改变一个存储单元结果是常事,至今关系型数据库的在线模式更新依旧不是件简单的事情。 --mongodb出现的必要性
选择MongoDB,是因为它的集合支持松散的模式,易于灵活调整;支持复杂的属性,并可为之建立索引,作为查询条件。
MongoDB的系统管理员上辈子是折翼的天使,使他们牺牲自己,方便了整个团队。 --mongodb存在的问题
丰富的数据模型
MongoDB是面向文档的数据库,不是关系型数据库。放弃关系模型的主要原因就是为了获得更加方便的扩展性,当然还有其他的好处。
基本的思路就是讲原来的行(row)的概念转换成为了更加灵活的文档模型。
MongoDB没有模型,文档的键是不会事先定义也不会固定不变。
文档是MongoDB的核心概念,多个键及其关联的值有序的放置在一起便是文档。
集合就是一组文档。如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表。
子集合是用“.”字符分开的按命名空间划分的子集合。
MongoDB中多个文档组成集合,同样多个集合可以组成数据库。一个MongoDB实例可以承载多个数据库,它们之间可视为完全独立的。每一个数据库都有独立的权限控制,即便是在磁盘上面。要记住一点:数据库名最终会变成文件系统里的文件,这也就是有如此多限制的原因。
特殊的几个数据库的名是保留的
admin local config
命名空间:将数据库的名字放在集合名前面,得到就是集合的完全限定名。但是字节的长度不能超过121字节。
Mongo启动
mongod在没有参数的情况下会使用默认数据目录/data/db,并使用27017端口,如果数据目录不存在或者不可写,服务器会启动失败。
mongod还会启动一个非常基本的HTTP服务器,监听数字比主端口号高1000的端口,也就是28017端口。这意味着你可以通过浏览器访问http://localhost:28017来获取数据库的管理信息。
MongoDB shell 可以能运行任意javascript程序,而且shell的真正威力还在于它是一个独立的MongoDB客户端。开启的时候,shell会连到MongoDB服务器的test数据库,并将这个数据库连接赋值给全局变量db。这个变量是通过shell访问MongoDB的主要入口点。