...">
瀏覽量:145次
mongodb的常用命令,mongodb啟動命令參數(shù)
成功啟動mongoDB后,打開命令行窗口,進入Mongo,就可以進行一些數(shù)據(jù)庫操作了。進入help可以看到基本的操作命令,只是MongoDB沒有創(chuàng)建數(shù)據(jù)庫的命令,但是有類似的命令。
mongod . exe-數(shù)據(jù)庫的服務(wù)器端,相當(dāng)于mysql的mysqld命令,啟動服務(wù)器端。
mongo . exe——數(shù)據(jù)庫的客戶端,相當(dāng)于mysql的mysql命令,打開管理控制臺。
Mongo是一個交互式的js shell,它提供了一個強大的js環(huán)境,為DBA提供了管理MongoDB的接口,為開發(fā)者提供了查詢MongoDB數(shù)據(jù)的接口。通過mongo shell與MongoDB交互,查詢和修改MongoDB數(shù)據(jù)庫,管理MongoDB數(shù)據(jù)庫,維護MongoDB副本集和碎片集群,是一個非常強大的工具。
成功啟動mongoDB后,打開命令行窗口,進入Mongo,就可以進行一些數(shù)據(jù)庫操作了。
進入help查看基本操作命令:
顯示數(shù)據(jù)庫:顯示數(shù)據(jù)庫列表
顯示集合:顯示當(dāng)前數(shù)據(jù)庫中的集合(類似于關(guān)系數(shù)據(jù)庫中的表)。
顯示用戶:顯示用戶
使用db name:切換當(dāng)前數(shù)據(jù)庫,這與MS-SQL中的意思相同。
Db.help():顯示數(shù)據(jù)庫操作命令,其中包含許多命令。
Db.foo.help():顯示設(shè)置操作命令,也有很多命令。foo指的是當(dāng)前數(shù)據(jù)庫中一個名為foo的集合,但它不是一個真正的命令。
Db.foo.find():對當(dāng)前數(shù)據(jù)庫中的foo集合執(zhí)行數(shù)據(jù)查找(因為沒有條件,所以將列出所有數(shù)據(jù))
Db.foo.find( {a: 1}):查找當(dāng)前數(shù)據(jù)庫中的foo集合,前提是數(shù)據(jù)中有一個名為a的屬性,a的值為1。
MongoDB沒有創(chuàng)建數(shù)據(jù)庫的命令,但是有類似的命令。
比如要創(chuàng)建一個“myTest”數(shù)據(jù)庫,首先運行use myTest命令,然后做一些操作(比如db.createCollection(user )),這樣就可以創(chuàng)建一個名為“myTest”的數(shù)據(jù)庫。
常見數(shù)據(jù)庫命令
1.幫助查看命令提示符
幫助
db . help();
db . your coll . help();
db.youColl.find()。help();
RS . help();
2.切換/創(chuàng)建數(shù)據(jù)庫
使用yourDB創(chuàng)建表時,會自動創(chuàng)建當(dāng)前數(shù)據(jù)庫。
3.查詢所有數(shù)據(jù)庫。
顯示dbs
4.刪除當(dāng)前使用的數(shù)據(jù)庫
db . drop database();
5.從指定的主機克隆數(shù)據(jù)庫。
db . clone database(" 127 . 0 . 0 . 1 ");將指定機器上數(shù)據(jù)庫的數(shù)據(jù)克隆到當(dāng)前數(shù)據(jù)庫。
6.將指定的數(shù)據(jù)庫數(shù)據(jù)從指定的計算機復(fù)制到數(shù)據(jù)庫。
db.copyDatabase(mydb , temp , 127 . 0 . 0 . 1 );將本機的mydb數(shù)據(jù)復(fù)制到臨時數(shù)據(jù)庫中。
7.修復(fù)當(dāng)前數(shù)據(jù)庫
db . repair database();
8.檢查當(dāng)前使用的數(shù)據(jù)庫。
db . getname();
db;dbgetname方法與dbgetname方法效果相同,可以查詢當(dāng)前使用的數(shù)據(jù)庫。
9.顯示當(dāng)前數(shù)據(jù)庫狀態(tài)
db . stats();
10.當(dāng)前數(shù)據(jù)庫版本
db . version();
1.檢查當(dāng)前數(shù)據(jù)庫的鏈接機器地址。
db . get mongo();
集合集合
1.創(chuàng)建聚集集(表)
db.createCollection("collName ",{size: 20,capped: 5,max:100 });
2.獲取具有指定名稱的聚合集(表)。
db . get collection( account );
3.獲取當(dāng)前數(shù)據(jù)庫的所有聚集集
db . getcollectionnames();
4.顯示當(dāng)前數(shù)據(jù)庫的所有聚集索引的狀態(tài)
db . printcollectionstats();
用戶相關(guān)性
1.添加用戶。
db . adduser( name );
db.addUser(userName , pwd123 ,true);添加用戶,設(shè)置密碼,只讀。
2.數(shù)據(jù)庫認證和安全模式
db.auth(用戶名, 123123 );
3.顯示所有當(dāng)前用戶。
顯示用戶;
4.刪除用戶。
db.removeUser(用戶名);
其他的
1.查詢以前的錯誤信息。
db . getpreverror();
2.清除錯誤記錄
db . reset error();
查看聚合集的基本信息。
1.查看幫助db . your coll . help();
2.查詢當(dāng)前集合中的數(shù)據(jù)個數(shù)db . your coll . count();
3.檢查數(shù)據(jù)空間大小db . userinfo . datasize();
4.獲取當(dāng)前聚合集所在的db db . userinfo . getdb();
5.獲取當(dāng)前聚合狀態(tài)db . userinfo . stats();
6.獲取聚合總大小db . userinfo . total size();
7.聚合集db.userInfo.storageSize()的存儲空間大?。?/p>
8.分片版本信息db.userInfo.getShardVersion()
9、聚集集合重命名db。用戶信息。重命名集合(“用戶”);將用戶信息重命名為用戶
10、刪除當(dāng)前聚集集合db。用戶信息。drop();
聚集集合查詢
1、查詢所有記錄
db。用戶信息。find();
相當(dāng)于:從用戶信息中選擇*
默認每頁顯示20條記錄,當(dāng)顯示不下的情況下,可以用它迭代命令查詢下一頁數(shù)據(jù)。注意:鍵入它命令不能帶";"
但是你可以設(shè)置每頁顯示數(shù)據(jù)的大小,用DBQuery.shellBatchSize=50這樣每頁就顯示50條記錄了。
2、查詢?nèi)サ艉蟮漠?dāng)前聚集集合中的某列的重復(fù)數(shù)據(jù)
db。用戶信息。distinct(“名稱”);
會過濾掉名字中的相同數(shù)據(jù)
相當(dāng)于:從用戶信息中選擇地區(qū)名稱;
3、查詢年齡=22歲的記錄
db。用戶信息。find({ age :22 });
相當(dāng)于:從用戶信息中選擇*其中年齡=22;
4、查詢22歲的記錄
db。用戶信息。查找({ age:{ $ gt:22 } });
相當(dāng)于:從用戶信息中選擇*凡年齡22;
5、查詢22歲的記錄
db。用戶信息。查找({ age:{ $ lt:22 } });
相當(dāng)于:從用戶信息中選擇*凡年齡22;
6、查詢年齡=25歲的記錄
db。用戶信息。查找({年齡:{ $ GTE:25 } });
相當(dāng)于:從用戶信息中選擇*其中年齡=25;
7、查詢年齡=25歲的記錄
db。用戶信息。find({ age:{ $ LTE:25 } });
8、查詢年齡=23歲并且年齡=26歲
db.userInfo.find({age: {$gte: 23,$ LTE:26 } });
9、查詢名字中包含蒙戈的數(shù)據(jù)
db。用戶信息。查找({ name:/mongo/});
//相當(dāng)于%%
select * from userInfo,其中名稱類似于" % mongo % ";
10、查詢名字中以蒙戈開頭的
db。用戶信息。查找({姓名:/^mongo/});
select * from userInfo,其中名稱類似于“mongo %”;
11、查詢指定列姓名、年齡數(shù)據(jù)
db.userInfo.find({},{姓名:1,年齡:1 });
相當(dāng)于:從用戶信息中選擇姓名、年齡;
當(dāng)然名字也可以用真實的或假的,當(dāng)用圖雷的情況下河名稱:1效果一樣,如果用錯誤的就是排除姓名,顯示名字以外的列信息。
12、查詢指定列姓名、年齡數(shù)據(jù),25歲
db。用戶信息。查找({年齡:{ $ gt:25 } },{姓名:1,年齡:1 });
相當(dāng)于:從用戶信息中選擇姓名、年齡,其中年齡為25歲;
13、按照年齡排序
升序:db.userInfo.find().排序({年齡:1 });
降序:db.userInfo.find().排序({年齡:-1 });
14、查詢姓名張三,年齡22歲的數(shù)據(jù)
db。用戶信息。查找({姓名:張三,年齡:22 });
相當(dāng)于:從用戶信息中選擇*其中姓名=張三,年齡= 22 ;
15、查詢前5條數(shù)據(jù)
db.userInfo.find().極限(5);
相當(dāng)于:從用戶信息中選擇top 5 *;
16、查詢10條以后的數(shù)據(jù)
db.userInfo.find().跳過(10);
相當(dāng)于:從用戶信息中選擇*其中編號不在(
從用戶信息中選擇前10名*
);
17、查詢在5-10之間的數(shù)據(jù)
db.userInfo.find().限制(10)。跳過(5);
可用于分頁,限制是頁面大小,跳過是第幾頁*頁面大小
18、或者與查詢
db。用戶信息。find({ $ or:[{年齡:22 },{年齡:25 }]});
相當(dāng)于:從用戶信息中選擇*其中年齡=22或年齡=25;
19、查詢第一條數(shù)據(jù)
db。用戶信息。findone();
相當(dāng)于:從用戶信息中選擇top 1 *;
db.userInfo.find().極限(1);
20、查詢某個結(jié)果集的記錄條數(shù)
db。用戶信息。找到({年齡:{ $ GTE:25 } }).count();
相當(dāng)于:從userInfo中選擇count(*),其中年齡=20歲
21、按照某列進行排序
db。用戶信息。查找({ sex:{ $ exists:true } }).count();
相當(dāng)于:從用戶信息中選擇計數(shù)(性別);
索引
1、創(chuàng)建索引
db。用戶信息。確保索引({ name:1 });
db。用戶信息。確保索引({ name:1,ts:-1 });
2、查詢當(dāng)前聚集集合所有索引
db。用戶信息。getindexes();
3、查看總索引記錄大小
db。用戶信息。total indexsize();
4、讀取當(dāng)前集合的所有指數(shù)信息
db。用戶。reindex();
5、刪除指定索引
db。用戶。刪除索引( name _ 1 );
6、刪除所有索引索引
db。用戶。刪除索引();
修改、添加、刪除集合數(shù)據(jù)
1、添加
db。用戶。保存({姓名:張三,年齡:25,性別:真});
添加的數(shù)據(jù)的數(shù)據(jù)列,沒有固定,根據(jù)添加的數(shù)據(jù)為準(zhǔn)
2、修改
db.users.update({age: 25},{$set: {name: changeName}},false,true);
相當(dāng)于:更新用戶集name=changeName ,其中年齡=25歲
db.users.update({name: Lisi},{$inc: {age: 50}},false,true);
相當(dāng)于:更新用戶set age=age50其中name= Lisi
db.users.update({name: Lisi},{$inc: {age: 50},$set: {name: hoho}},false,true);
相當(dāng)于:更新用戶集age=age50,name= hoho 其中name= Lisi
3.刪除
db . users . remove({ age:132 });
4.查詢、修改和刪除
db.users.findAndModify({
查詢:{年齡:{$gte: 25}},
排序:{年齡:-1},
更新:{$set: {name: a2},$inc: {age: 2}},
移除:真
});
db . run command({ findandmodify: users ,
查詢:{年齡:{$gte: 25}},
排序:{年齡:-1},
更新:{$set: {name: a2},$inc: {age: 2}},
移除:真
});
語句塊操作
1.簡單的Hello World
print(Hello World!);
這個方法調(diào)用print函數(shù)并寫出“Hello World!”直接。效果是一樣的;
2.將對象轉(zhuǎn)換為json
to JSON(new Object());
tojson(新對象( a ));
3.循環(huán)添加數(shù)據(jù)。
for(var I=0;i 30i ) {
.db . users . save({姓名: u_ i,年齡:22 i,性別:I % 2 });
.};
這樣30條數(shù)據(jù)循環(huán)相加,括號也可以省略。
for(var I=0;i 30I)db . users . save({姓名: u_ i,年齡:22 i,性別:I % 2 });
也有可能。使用db.users.find()查詢時,在一頁無法顯示多條數(shù)據(jù)的情況下,可以使用它在下一頁查看信息;
4.查找光標(biāo)查詢
var cursor=db . users . find();
while (cursor.hasNext()) {
print JSON(cursor . next());
}
這樣,所有的用戶信息都可以被查詢,同樣可以被寫入。
var cursor=db . users . find();
while(cursor . has next()){ print JSON(cursor . next);}
也可以省略{}符號。
5.forEach迭代循環(huán)
db.users.find()。forEach(print JSON);
必須在forEach中傳遞一個函數(shù)來處理每次迭代的數(shù)據(jù)信息。
6.將查找光標(biāo)視為數(shù)組。
var cursor=db . users . find();
光標(biāo)[4];
獲取下標(biāo)索引為4的數(shù)據(jù)。
既然可以當(dāng)作數(shù)組來處理,就可以得到它的長度:cursor . length();或者cursor . count();
這樣,我們也可以在一個循環(huán)中顯示數(shù)據(jù)。
for (var i=0,len=c . length();我lenI)print JSON(c[I]);
7.將查找光標(biāo)轉(zhuǎn)換成數(shù)組。
var arr=db.users.find()。to array();
print JSON(arr[2]);
使用toArray方法將其轉(zhuǎn)換為數(shù)組。
8.定制我們自己的查詢結(jié)果
僅顯示年齡=28歲的數(shù)據(jù)和年齡列。
db.users.find({age: {$lte: 28}},{age: 1})。forEach(print JSON);
db.users.find({age: {$lte: 28}},{age: true})。forEach(print JSON);
排除的年齡列
db.users.find({age: {$lte: 28}},{age: false})。forEach(print JSON);
9.forEach傳遞函數(shù)顯示信息
db.things.find({x:4})。forEach(function(x){ print(tojson(x));});
用mongod啟動數(shù)據(jù)庫進程。這些參數(shù)解釋如下:
- dbpath指定數(shù)據(jù)庫的目錄。
- port指定數(shù)據(jù)庫的端口,默認情況下為27017。
-bind _ IP綁定IP
- directoryperdb為每個數(shù)據(jù)庫創(chuàng)建一個獨立的子目錄
- logpath指定日志存儲目錄。
- logappend指定日志生成方法(追加/覆蓋)
- pidfilepath指定進程文件路徑,如果未指定,則不會生成任何進程。
-密鑰文件群集模式的密鑰標(biāo)識
- cpu定期顯示cpu和IO利用率。
-日志啟用日志記錄
- ipv6啟用ipv6支持。
- nssize指定的大小。ns文件,以MB為單位,默認值為16M,最大值為2GB。
- maxConns最大并發(fā)連接數(shù)
- notablescan不允許表掃描。
- quota限制每個數(shù)據(jù)庫的文件數(shù)量,默認情況下為8個。
- quotaFiles每個數(shù)據(jù)庫中的文件數(shù)量,與-quota參數(shù)匹配。
- noprealloc關(guān)閉數(shù)據(jù)文件的預(yù)分配功能。
mongod 命令常用參數(shù)
1、常用參數(shù)
Mongod是MongoDB系統(tǒng)的主守護進程,用于處理數(shù)據(jù)請求、訪問數(shù)據(jù)和執(zhí)行后臺管理操作。它必須在訪問MongoDB數(shù)據(jù)庫之前啟動。
啟動mongod時,常用的參數(shù)有:
- dbpath db_path:存儲MongoDB數(shù)據(jù)文件的目錄。
- directoryperdb:指定每個數(shù)據(jù)庫存儲在一個目錄中,該目錄位于- dbpath指定的目錄中,每個子目錄對應(yīng)一個數(shù)據(jù)庫名稱。使用單獨的目錄存儲每個數(shù)據(jù)庫的數(shù)據(jù)。這些目錄位于- dbpath目錄下,每個子目錄名稱都對應(yīng)于數(shù)據(jù)庫名稱。
-logpathlog _ path:指定mongod記錄的文件。
- fork:以后臺守護程序的形式運行服務(wù)。
-日志:啟動日志功能,保存操作日志,減少單機故障恢復(fù)時間。
- config(或-f)config_file_path:配置文件,用于指定運行時選項。
- bind_ip ip address:指定外部服務(wù)的綁定ip地址。
-港口港口:對外服務(wù)窗口
- auth:啟用身份驗證以驗證用戶權(quán)限控制。
- syncdelayvalue:系統(tǒng)刷新磁盤的時間,單位為秒,默認為60s。
- replSet setname:將mongod作為副本集啟動,副本集的標(biāo)識為setname。
2.1通過命令啟動,默認dbpath為C:\data\db
mongod - dbpath=C:\data\db
2.2從配置文檔開始。
將mongod的命令參數(shù)寫入配置文檔,從參數(shù)-f開始。
mongod-f C:\ data \ db \ MongoDB _ config . config
2.3以守護模式啟動
當(dāng)啟動MongoDB的進程關(guān)閉時,MongoDB也會關(guān)閉。只需使用- fork參數(shù)啟動MongoDB作為后臺守護進程。
蒙哥德???/p>
3.檢查mongod的啟動參數(shù)
db.serverCmdLineOpts()
在啟動mongo shell時,常用的參數(shù)是:
- nodb:防止mongo在啟動時連接到數(shù)據(jù)庫實例;
-portport:指定mongo連接Mongo監(jiān)聽的TCP端口,默認端口值為27017;
- host hostname:指定mongod運行的服務(wù)器。如果沒有指定這個參數(shù),mongo會嘗試連接本地運行的mongod實例(localhost);
Db address:指定mongo所連接的數(shù)據(jù)庫。
- username/-u username和- password/-p password:指定訪問MongoDB數(shù)據(jù)庫的帳戶和密碼。只有通過認證,用戶才能訪問數(shù)據(jù)庫;
- authenticationDatabase dbname:指定在其中創(chuàng)建用戶的數(shù)據(jù)庫。創(chuàng)建用戶時,數(shù)據(jù)庫是認證數(shù)據(jù)庫;用戶的。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點,本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認后,會立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776