啟動后客戶端連接:./mongo
2.顯示所有數(shù)據(jù)庫:show dbs; 使用數(shù)據(jù)庫: use test; 查看當(dāng)前:db 查看幫助:db.help();
創(chuàng)建數(shù)據(jù)庫(隱式):直接 use shop;
刪除數(shù)據(jù)庫:刪除前先使用db看一下在哪個數(shù)據(jù)庫,然后 直接執(zhí)行db.dropDataBase();
創(chuàng)建集合:db.createCollection("jihe_name"); 經(jīng)常使用隱式創(chuàng)建:db.jihe_name.insert({name:"test"});
刪除集合:db.jihe_name.drop();
集合里插入文檔(一條記錄(數(shù)據(jù))):db.jihe_name.insert({name:"zhangsan",age:23});
集合里:db.jihe_name.find();查出的結(jié)果中,_id做為文檔的唯一標(biāo)識,是可能手動指定的:db.jihe_name.insert({_id:3,name="zhangsan"});
集合里刪除一個文檔:db.jihe_name.remove({條件key:條件value});
集合里修改一個文檔:db.jihe_name.update({id:3},{$set:{name:"zhangsan111"}},1,1); //第三個參數(shù)如果為1:如果記錄存在,則更新,不存在則新增 ;第4個參數(shù)為1:符合條件的金條記錄全都更新,如果為0,則只更新1條
集合里自動增1:db.jihe_name.update({條件},{$inc:{age:1}});
集合里刪除某個字段:db.jihe_name.update({條件},{$unset:{address:1},0,1});
集合里查找全部:db.jihe_name.find(條件);
集合里查找特殊的列:db.jihe_name.find({條件},{age:0}); 則age字段不顯示
集合里大于小于。。。:db.jihe_name.find({field:{$gt:value}}); $lt $gte $lte $ne
集合里in:db.jihe_name.find({age:{$in:[1,2,3,4]}}); //$nin
集合里or:db.jihe_name.find({$or:[{name:"user2"},{age:3}]}); //$nor
集合里存在某字段name:db.jihe_name.find({name:{$exists:1}});
集合里查找第一個:db.jihe_name.findOne();
集合里統(tǒng)計:db.jihe_name.find().count();
集合里排序:db.jihe_name.find().sort({age:1}); //1:升序,-1:降序
集合里分頁:db.jihe_name.find().sort({條件}).skip().limit();
創(chuàng)建普通索引,使用命令 db.collection.ensureIndex({key:1})
查看關(guān)于索引的相關(guān)信息,使用命令 db.collection.stats()
查看查詢使用索引的情況,使用命令 db.collection.find({key:value}).explain()
刪除索引,使用命令 db.collection.dropIndex({key:1})
刪除集合,也會將集合中的索引全部刪除
創(chuàng)建唯一索引,使用命令 db.collection.ensureIndex({key:1},{unique:true})
查看關(guān)于索引的相關(guān)信息,使用命令 db.collection.stats()
查看查詢使用索引的情況,使用命令 db.collection.find({key:value}).explain()
刪除索引,使用命令 db.collection.dropIndex({key:1})
刪除集合,也會將集合中的索引全部刪除
固定集合
db.createCollection(“collectionName”,{capped:true,size:100000,max:100});
size指定集合大小,單位為KB,max指定文檔的數(shù)量
備份和恢復(fù)
備份和恢復(fù)
MongoDB提供了備份和恢復(fù)的功能,分別是MongoDB下載目錄下的mongodump.exe和mongorestore.exe文件
備份數(shù)據(jù)使用下面的命令:
>mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服務(wù)器地址,例如:127.0.0.1,當(dāng)然也可以指定端口號:127.0.0.1:27017
-d:需要備份的數(shù)據(jù)庫實例,例如:test
-o:備份的數(shù)據(jù)存放位置,例如:c:\data\dump,當(dāng)然該目錄需要提前建立,在備份完成后,系統(tǒng)自動在dump目錄下建立一個test目錄,這個目錄里面存放該數(shù)據(jù)庫實例的備份數(shù)據(jù)。
恢復(fù)數(shù)據(jù)使用下面的命令:
>mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h:MongoDB所在服務(wù)器地址
-d:需要恢復(fù)的數(shù)據(jù)庫實例,例如:test,當(dāng)然這個名稱也可以和備份時候的不一樣,比如test2
-directoryperdb:備份數(shù)據(jù)所在位置,例如:c:\data\dump\test
導(dǎo)入和導(dǎo)出
導(dǎo)出數(shù)據(jù)可以使用命令:
mongoexport -h dbhost -d dbname -c collectionName -o output
參數(shù)說明:
-h 數(shù)據(jù)庫地址
-d 指明使用的庫
-c 指明要導(dǎo)出的集合
-o 指明要導(dǎo)出的文件名
導(dǎo)入數(shù)據(jù)可以使用命令:
mongoimport -h dbhost -d dbname -c collectionname 文件的地址...
參數(shù)說明:
-h 數(shù)據(jù)庫地址
-d 指明使用的庫
-c 指明要導(dǎo)入的集合
本地的文件地址...
安全和認(rèn)證
在admin數(shù)據(jù)庫中創(chuàng)建管理員賬號:
use admin;
db.addUser(“root”,”root”);
在test數(shù)據(jù)庫中創(chuàng)建普通賬號:
use test;
db.addUser(“zhangsan”,”123”);
db.addUser(“lisi”,”123”,true);
注意:用戶zhangsan,密碼為123,對test數(shù)據(jù)庫擁有讀寫權(quán)限
用戶lisi,密碼為123,對test數(shù)據(jù)庫擁有只讀權(quán)限
重新啟動數(shù)據(jù)庫服務(wù),并開啟安全檢查:
mongod --dbpath d:\mongo_data --auth