Nosql之Mongodb 1 安裝配置與基本操作
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”})
浙公網安備 33010602011771號