@@ -4,6 +4,8 @@ http://www.mongodb.org/
44
55## 安装部署
66
7+ ### 方式1
8+
79安装brew:
810
911 $ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"
@@ -24,8 +26,167 @@ http://www.mongodb.org/
2426
2527![ Mou icon] ( ./images/mongodb3.jpg )
2628
29+ 不推荐
30+
31+ ### 方式2
32+
33+ http://www.mongodb.org/downloads
34+
35+ 下载最新的mongodb,比如mac目前最新的是mongodb-osx-x86_64-2.6.5.tgz
36+
37+ 将下载的压缩包,解压到/Users/sang/bin/下面
38+
39+ 配置环境变量,比如我的zsh配置到` ~/.zshrc ` 里
40+
41+ export PATH=/Users/sang/bin/mongodb-osx-x86_64-2.6.4/bin:$PATH
42+
43+ ## 启动服务器
44+
45+ create startmongo.sh
46+
47+ ```
48+ #! /bin/bash
49+ mkdir -p ./data/mongodb
50+ mongod --dbpath ./data/mongodb --logpath ./mongodb.log &
51+ ```
52+
53+ 说明
54+
55+ - mongod是mongo deamon的意思,启动服务器
56+ - ` --dbpath ` 是数据存储位置
57+ - ` --logpath ` 是日志存储位置
58+
59+ 执行
60+
61+ ./startmongo.sh
62+
63+ 查看日志
64+
65+ tail -f ./mongodb.log
66+
2767## 熟悉命令
2868
69+ ### 练习
70+ 在线练习
71+
72+ http://try.mongodb.org/
73+
74+ 本地
75+
76+ ➜ ~ mongo
77+ MongoDB shell version: 2.6.4
78+ connecting to: test
79+ Server has startup warnings:
80+ 2014-10-12T15:15:30.180+0800 [initandlisten]
81+ 2014-10-12T15:15:30.180+0800 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
82+ >
83+
84+ ### 连接
85+
86+ 打开命令窗口,键入mongo,如果系统提示:connecting to: test,表示连接成功。
87+
88+ ### 查看所有库
89+ 键入show dbs,则会显示出当前数据库中所有的数据库名称。在mongodb里面是不用
90+ 去手动建立一个数据库的,你只要直接使用就好,如果不存在数据库引擎会帮我们
91+ 创建他们。这一点与传统数据库相比有些不同。
92+
93+ ### 使用mydb
94+ 键入use mydb,使用数据库mydb,当然
95+ mongodb会帮助我们自动创建他们,当然这个时候数据库还是空的,可以通过输入
96+ show dbs来确认这一点。
97+
98+ ### 新增记录
99+
100+ 输入:
101+
102+ db.user.save({name:'Rod',age:30})
103+
104+
105+ ### 查看集合当中所有文档
106+
107+ db.user.find()
108+
109+ 可查看出当前库user集合中所有的文档,如下所示:
110+
111+ { "_id" : ObjectId("4df2201ac905b4e2a5f555cb"), "name" : "Rod", "age" : 30 }
112+
113+ 此时发现,在文档的前面多了一列"_ id",这是自动加进去的,不用管他。
114+
115+ ### 删除记录
116+
117+ db.user.remove()将删除所有记录,
118+
119+ db.user.remove({name:'Rod'})
120+
121+ 将删除指定记录
122+
123+ ### 保存多条记录
124+ 输入:
125+
126+ for(var i=1;i<=20;i++) db.user.save({x:8,y:i})
127+
128+ ,可以看出整个语法很像
129+ JS,其实你正在使用的就是一个JavaScript Shell。此时可以输入db.user.find()
130+ 来查看所有记录。
131+
132+ ### 迭代器的使用
133+ 我们再向集合中插入一条记录:
134+
135+ db.user.save({x:'test'})
136+
137+ ,再次查看所有记录
138+
139+ db.user.find()
140+
141+ 则发现只显示出了前20条记录。此时可以输入it(iteraor)来
142+ 查看余下的记录。
143+
144+ 在mongodb里可以将cursor当成数组来使用,如下所示:
145+
146+ ```
147+ var cursor = db.user.find(); // 将游标缓存起来
148+ printjson(cursor[4]); // 打印出第5条记录
149+ ```
150+
151+ 注意此种方式会将前N行全查出来,所以对性能有较大影响。
152+
153+ ### 根据条件查询
154+ 现要查询出y大于10的所有记录:
155+
156+ db.user.find({y:{$gt:10}});
157+
158+
159+ 其中$gt的意思就是“大于”,当然读者可推出其他N种表达。
160+
161+ ### 查询指定列
162+
163+ db.user.find({x:8},{y:true});// 查询出x=8的所有记录的y列
164+ db.user.find({},{y: true }); // 查询出所有的Y列
165+
166+ ### 只查第一列
167+ 有的时候我们只需要第一行的值,如果自己编程实现显得有些麻烦,因此数据库为我们
168+ 提供了一个方法:
169+
170+ db.user.findOne();
171+
172+ ### 限制最大记录从而提高性能
173+ 我们可以通过limit来限制查询的最大行数,如下:
174+
175+ db.user.find().limit(4); // 只显示出前四条
176+
177+ ### 修改记录
178+
179+ 将第一条x为3的记录修改为后面的值,
180+
181+ db.user.update({x:4},{x:4,y:1});
182+
183+ ## 文档
184+
185+ 增删改查crud
186+
187+ http://docs.mongodb.org/manual/core/crud-introduction/
188+
189+
29190
30191## 了解node如何调用mongodb
31192
0 commit comments