
1、官網下載下傳 對應的版本, mongodb-win32-x86_64-2008plus-ssl-3.4.6-signed.msi
層檔案夾
到bin目錄下面 管理者權限運作cmd指令 mongod.exe
==》
3、啟動
D:\wamp\mongodb\bin>net start mongodb
請求的服務已經啟動。
4、連結資料庫 D:\wamp\mongodb\bin>mongo 127.0.0.1:27017
5、檢視資料庫 > show databases 或 用 show dbs
文法: show dbs 或者 show databaes(和mysql一樣);
use 資料庫名(與mysql一緻)
删除資料庫
use 資料庫
db.dropDatabase();
文法: show collections(推薦使用) 或者 show tables(與mysql的相容)
當使用這個指令時,要選擇一個資料庫
使用mongodb特有的指令
文法:db.createCollection(‘集合名’); # 注意集合這個單詞的首字母大寫
注意:如果use了一個不存在的資料庫,我們依舊可以在裡面建立集合.
當use一個不存在的資料庫時就會自動建立.
文法:db.集合名.drop();
三 實作資料(文檔)的crud
文法:db.集合名.insert(json資料);
json資料 {“key1”:”value1”,”key2”:”value2”}
說明:插入記錄成功之後,mongodb會預設為每一個文檔都添加一個_id的字段,并且 同一集合中的_id是唯一的.
思考:一次性插入多條資料.
文法格式:db.goods.insert([{},{},{}]);
以js中索引數組形式插入多條資料
文法:db.集合名.find(查詢條件,查詢的列)
如:db.goods.find() #查詢集合中所有的記錄
db.goods.find({“name”:”feng”}) #查詢集合中名字叫feng的記錄
第一個參數查詢條件相當于MySQL中的where條件
第二個參數查詢列格式說明:
{“age”:1} #表示僅傳回年齡
db.goods.find({"name":"feng"},{"age":1});
{“age”:0} #傳回除了年齡意外其他資料
db.goods.find({"name":"feng"},{"age":0});
{“age”:1,name”:1} # 隻傳回年齡與姓名
文法:db.集合名.remove(query,justOne);
參數說明:query查詢表達式是一個json資料(與sql中的where相似)
如:删除鍵名為’李世民’的資料:db.test.remove({“name”:”李世民”});
justOne:true/false 是否隻删除1條.預設為false(相當于sql中的limit)
一次隻删一條資料
一次性删除兩條資料,即remove的第二個參數設定為FALSE
文法:db.集合名.update(條件,資料,[是否新增預設false],[是否修改多條預設false]).
參數說明 :
參數3 :修改的資料不存在則自動添加,預設false,不添加
參數4:是否修改所有符合條件的資料,預設值修改一條.
db.createCollection("test1");
for(var i = 1; i<= 10; i++){
db.test1.insert( {"name":"zs"+i,"age":i} );
}
實際的操作:
例1:
将{“name”:”zs1”}修改為{“name”:”zs2”}
問題:我們隻想修改名字.但是年齡被删除了.
例2:
a如何解決例1中的資料替換問題?
辦法:使用修改器.
文法:db.集合名.update({條件},{修改器名稱:{修改的鍵:修改的值}});
例2:通過修改器将zs3的年齡修改為33
db.test1.update({“name”:”zs1”},{”$set”:{“age”:33}});
說明:修改器名稱的引号可加可不加,在這裡統一必須要加.
例2: 給zs10的年齡增加兩歲.
db.test1.update({“name”:”zs10”},{“$inc”:{“age”,2}});
當我們再修改資料時,如果沒有符合條件的.就直接新增加一條資料.
如果一次性有多條資料滿足要求.那麼設為TRUE時.就全部修改
例:把zs2的name修改為250
查詢資料:
6、主從伺服器,資料同步: