Skip to content

Commit 7be4a25

Browse files
committed
mongodb doc
1 parent 5ddeade commit 7be4a25

2 files changed

Lines changed: 162 additions & 0 deletions

File tree

doc/2014-10-13-ce-shi-yi-ge-wen-zhang.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ https://lodash.com/docs
241241
- https://github.com/teambition/then.js
242242

243243
## url
244+
244245
http://scotch.io/tutorials/javascript/build-a-restful-api-using-node-and-express-4#route-middleware
245246

246247

doc/day2_mongodb.md

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)