No-SQL的一篇比较详细的中文介绍来自于我自然的博客。而MongoDB也是NoSQL中的一个实现。只不过它现在比较流行于Web开发,尤其是跟NodeJS的结合。
开始
1. 安装mongodb on Mac
- 安装包管理软件brew
访问HomeBrew可以轻易地安装brew,它可以很轻松地为你在Mac上安装Unix的程序,譬如mongodb在linux上很容易安装,但是并没有Mac原始的安装包,由于Mac本身也是基于Unix的,所以brew究提供了类似于Linux的简单安装方式。 -
安装mongodb
首先更新brewbrew update
然后安装mongodb:
brew install mongodb
安装成功之后,会自动把mongodb/bin加入到PATH底下,也就是说你可以直接在命令行下运行mongodb相关的命令。启动mongodb如下:
mongod
注意:Linux或Windows的安装可以参考官方文档:Installing MongoDB
2. 命令行访问mongodb
安装并运行mongodb成功之后,可以运行下面的命令连接mongo db:
localhost:myblog ramon$ mongo
MongoDB shell version: 2.0.3
connecting to: test
类似与mysql,运行show dbs
可以查看当前server有几个数据库,例如本机的运行情况:
> show dbs
db 0.203125GB
local (empty)
node-mongo-blog 0.203125GB
test 0.203125GB
可以看出,这里有4个数据库。你也可以运行命令help
以查看帮助。现在创建数据库foo,
> use foo
switched to db foo
输入命令db
可以查看当前数据库的名字。而要查看当前数据库有哪些集合(Collection),也就是关系数据库中的表可以用如下的命令
> show collections
显示没有任何集合,现在创建collection bar:
> db.bar.insert({a: 1, b: 'b1'})
> show collections
bar
system.indexes
对于collection的操作,必须要在collection前面加上db.
才行,否则报错。只要尝试往bar插入数据,那么bar就会被创建,根本不需要事先定义bar,而bar的schema也是任意的,也就是说现在插入的数据是{a:1, b: "b1"}
,接下来你也可以插入{c: 2, b: "b2"}
.至于在查看集合的时候,发现有system.indexes,它是系统生成的,用于存储所有的索引(Index)信息,参考Mongo Metadata。
> db.bar.insert({c:2, b:'b2'})
> db.bar.find()
{ "_id" : ObjectId("4fde10be4245dec7bc76e27e"), "a" : 1, "b" : "b1" }
{ "_id" : ObjectId("4fde118f4245dec7bc76e27f"), "c" : 2, "b" : "b2" }
我们用find
命令来查看collection的数据。你可以看到自动增加了字段_id为主键。
更多的关于mongodb的入门介绍可以参考官方的Tutorial