關于mongodb的好處,優點之類的這里就不說了,唯一要講的一點就是mongodb中有三元素:數據庫,集合,文檔,其中“集合”就是對應關系數據庫中的“表”,“文檔”對應“行”。
## 下載
上[MongoDB官網](https://www.mongodb.org/) ,我們發現有32bit和64bit,這個就要看你系統了,不過這里有兩點注意:
>1)根據業界規則,偶數為“穩定版”(如:1.6.X,1.8.X),奇數為“開發版”(如:1.7.X,1.9.X),這兩個版本的區別相信大家都知道吧。
2)32bit的mongodb最大只能存放2G的數據,64bit就沒有限制。
<!--more-->
我這里就下載"32bit“,ok,下載之后我就放到D盤,改下文件夾名字為mongodb。
解壓壓縮包或者安裝到mongodb目錄。
啟動之前,我們要給mongodb指定一個文件夾,這里取名為db,用來存放mongodb的數據。
最終目錄結構:
```
D:.
├─mongodb
│ ├─bin
│ └─db
│ └─_tmp
```
## 啟動并初始化
cmd里進入到mongodb/bin目錄,然后運行mongod開啟命令,同時用`--dbpath`指定數據存放地點為“db”文件夾。
初始化數據庫
```
D:\Projects\mongodb\bin>mongod --dbpath=D:\Projects\mongodb\db
```
最后要看下是否開啟成功:mongodb采用27017端口,那么我們就在瀏覽器里面鍵入`http://localhost:27017/`,看到有提示內容即可。
## 基本操作
由于是開篇,就大概的說下基本的“增刪查改“,我們再開一個cmd,之前的命令行窗口不要關閉(關閉連接就斷了)。輸入mongo命令打開shell,其實這個shell就是mongodb的客戶端,同時也是一個`js的編譯器`(支持js語法)。
打開數據庫,默認是`test`數據庫
```
D:\Projects\mongodb\bin>mongo
connecting to: test
```
下面開始增刪查改:
### 新增記錄(insert)
好,數據庫有了,下一步就是集合,這里就取集合名為“person”,要注意的就是文檔是一個json的擴展(Bson)形式。
```
> db.person.insert({"name":"yjc","age":22})
WriteResult({ "nInserted" : 1 })
```
再新增一條
```
> db.person.insert({"name":"rzc","age":22})
WriteResult({ "nInserted" : 1 })
```
###查詢(find)
1)“_id": 這個字段是數據庫默認給我們加的GUID,目的就是保證數據的唯一性。
2)嚴格的按照Bson的形式書寫文檔,不過也沒關系,錯誤提示還是很強大的。
查詢所有
```
> db.person.find()
{ "_id" : ObjectId("558fd39d02d9b5bcf004aaf5"), "name" : "yjc", "age" : 22 }
{ "_id" : ObjectId("558fd3c602d9b5bcf004aaf6"), "name" : "rzc", "age" : 22 }
```
### 條件查找
```
> db.person.find({"name":"yjc"})
{ "_id" : ObjectId("558fd39d02d9b5bcf004aaf5"), "name" : "yjc", "age" : 22 }
```
### 更新操作(update)
update方法的第一個參數為“查找的條件”,第二個參數為“更新的值”。
```
> db.person.update({"name":"rzc"},{"name" : "rzc2", "age" : 20})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.person.find({"name":"rzc"})
> db.person.find({"name":"rzc2"})
{ "_id" : ObjectId("558fd3c602d9b5bcf004aaf6"), "name" : "rzc2", "age" : 20 }
```
### 刪除操作(remove)
remove中如果不帶參數將刪除所有數據,呵呵,很危險的操作,在mongodb中是一個不可撤回的操作,三思而后行。
```
> db.person.remove({"name":"rzc2"})
WriteResult({ "nRemoved" : 1 })
> db.person.find()
{ "_id" : ObjectId("558fd39d02d9b5bcf004aaf5"), "name" : "yjc", "age" : 22 }
> db.person.count()
1
```