mongodb是什麼以及其優缺點這裡就不介紹了,這幾篇文章目的主要是通過實際操作來認識mongodb
Mongodb安裝以及初始化
1 :http://www.mongodb.org/
2 安裝?需要嗎?超級簡單,直接解壓就ok啦!!!
3 為了方便使用直接將安裝目錄下的bin檔案夾設定到環境變數中去
4 建立資料庫檔案存放目錄,其實就是建立一個檔案夾,比如建立檔案夾d:\Mongdb
5 建立一個mongodb的記錄檔,比如建立一個檔案d:\Mongdo\logs\mongodb.log
6 我們可以將mongodb註冊成一個windows服務,這樣我們就可以使用net start和net stop來啟動和關閉服務了,在windows的CMD下面輸入
mongod --dbpath=d:\Mongodb --logpath=d:\Mongodb\logs\mongodb.log
7 啟動mongodb服務
net start mongodb
搞定!!!
牛刀小試
我們建立一個叫UserInfo的資料庫,並建立users集合(類似於RDBMS中的表),並插入兩條記錄(Mongodb中叫做document(文檔))
首先在cmd下面輸入mongo,進入用戶端命令列,它是一個js解譯器,能夠支援javascript文法,比如 for(var i=0; i<10; i++) db.users.save({name:”name”+i, age:i}); 等等等
1) 建立UserInfo資料庫
use UserInfo
註:是如果不存在UserInfo這個資料庫,它會自動的給我們建立,如果存在當然是直接切換到這個資料庫咯,如:
2) 建立兩條記錄user1和user2並插入到users集合中
user1 = {name:”zhangsan”, age:24};
user2 = {name:”lisi”, age:23};
db.users.save(user1);
db.users.save(user2);
---------------------------------------------------------------------------------------------------------------------------
也可以這麼寫
db.users.save({name:”zhangsan”, age:24});
db.users.save({name:”lisi”, age:23});
---------------------------------------------------------------------------------------------------------------------------
註:這裡同樣我們不需要預先建立users這個集合,在第一次插入資料時會給我們自動建立
3) 查詢剛才我們插入到users集合中的資料
db.users.find();
說明:
儲存在mongdb上的每一個document都會有一個預設的主鍵_id(如果我們不顯示的指定的話), 如。這個_id自動是每個文檔所必須的,當然它的類型不一定要是的ObjectId,不過主鍵必須是唯一的。
Mongodb的增刪改新增記錄
文章開始已經介紹過了,這裡有一點需要注意的就是
db.insert()和db.save()的區別:
-----------------------------------------------------------------------------------------------------------
insert 永遠都是插入一條新記錄
save 如果不存在此記錄則插入,存在則更新
-----------------------------------------------------------------------------------------------------------
先插入一些資料用於測試
db.users.save({name:"lucy", age:23, country:"canada", gender:0});
db.users.save({name:"joe", age:32, country:"american", gender:1});
db.users.save({name:"fanny", age:22, country:"china", gender:0});
db.users.save({name:"royall", age:44, country:"africa", gender:1});
db.users.save({name:"michael", age:25, country:"china", gender:1});
db.users.save({name:"edgar", age:24, country:"china", gender:1});
db.users.save({name:"apple", age:39, country:"brazil", gender:0});
db.users.save({name:"bruce", age:51, country:"england", gender:1});
db.users.save({name:"lee", age:12, country:"japan", gender:1});
db.users.save({name:"cang", age:31, country:"japan", gender:0});
db.users.save({name:"hebe", age:33, country:"china", gender:0});
db.users.save({name:"pig", age:1, country:"pigHouse", gender:0});
db.users.save({name:"kevin", age:48, country:"china", gender:1});
修改記錄
用新的文檔替換
db.users.update({“name”:”cang”}, {“name”:”hello”, fav: {“favID”:100, “favName”:”football” } } )
只修改某個值
修改name為bruce的country為Australia,age為18
db.users.update({“name”:"bruce"}, {$set:{“country”:"Australia", “age”:18}})
刪除鍵
db.users.update({“name”:”bruce”}, {$unset:{“country”:1}})
前面的update操作只會更新匹配到的第一條記錄,關於update還有兩個參數
update(query, obj, upsert, multi)
upsert指的是如果不存在則進行插入
multi是指更新匹配到的所有文檔
刪除記錄
刪除users集合下所有記錄
db.users.remove()
刪除指定條件的記錄
db.users.remove({“name”:”apple”})