日期:2014-05-16  浏览次数:20609 次

MongoDB学习笔记

参考资料:

?

《MongoDB:The Definitive Guide》?http://book.douban.com/subject/4746684/

?

《MongoDB官方文档》?http://www.mongodb.org/display/DOCS/Home

?

什么是MongoDB:

?

MongoDB是10gen公司开发的一个NoSQL产品,它的主要特点是:

  • 非关系式,面向文档形的数据库(document-oriented database)。
  • schema-free——无需为数据库建模,可以随时改变数据的形式。
  • JSON-like文档——可以用类似JavaScript的方式操作文档对象。
  • MapReduce——支持大规模数据聚合(Aggregation)。
  • 速度非常快——索引支持,内存映射引擎(memory-mapped engine),查询动态优化。
  • 易于扩展——允许自动划分数据到多台服务器,动态扩展。

实际应用:

?

MongoDB已经用在很多实际的生产环境当中了,比如以下

?

http://www.foursquare.com/

http://sourceforge.net/

http://bit.ly/

?

更多案例可以看?http://www.mongodb.org/display/DOCS/Production+Deployments

?

安装:

?

访问?http://www.mongodb.org/display/DOCS/Quickstart?

选择你的操作系统来安装MongoDB

?

MongoDB安装完成之后,默认会有一个MongoShell可供交互使用

?

huangz@pad:~$ mongo
MongoDB shell version: 1.4.4
url: test
connecting to: test
type "exit" to exit
type "help" for help
>

?

可以使用JavaScript的语法来在MongoShell中进行操作。

使用help可以查看常用命令

?

> help
HELP
	show dbs                     show database names
	show collections             show collections in current database
	show users                   show users in current database
	show profile                 show most recent system.profile entries with time >= 1ms
	use <db name>                set curent database to <db name>
	db.help()                    help on DB methods
	db.foo.help()                help on collection methods
	db.foo.find()                list objects in collection foo
	db.foo.find( { a : 1 } )     list objects in foo where a == 1
	it                           result of the last line evaluated; use to further iterate

?

数据:文档、集合和数据库

?

文档(document)是MongoDB中最基本的数