溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MongoDB常用的基本操作命令

發(fā)布時間:2021-08-19 10:55:12 來源:億速云 閱讀:142 作者:chen 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章主要講解了“MongoDB常用的基本操作命令”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MongoDB常用的基本操作命令”吧!

在MongoDB數(shù)據(jù)庫里面是存在有數(shù)據(jù)庫的概念的,但是沒有模式(所有的信息都是按照文檔保存的),文檔的結(jié)構(gòu)就是JSON結(jié)構(gòu),只不過在進行一些數(shù)據(jù)處理的時候才會使用到MongoDB自己的一些操作符。

1、切換到stone數(shù)據(jù)庫:
> db
test
執(zhí)行 "db" 命令可以顯示當(dāng)前數(shù)據(jù)庫對象
> use stone
switched to db stone
> show databases;
admin  0.000GB
local  0.000GB
實際上這個時候并不會創(chuàng)建數(shù)據(jù)庫,只有在數(shù)據(jù)庫里面保存集合數(shù)據(jù)之后才能夠真正創(chuàng)建數(shù)據(jù)庫。
  ● admin: 從權(quán)限的角度來看,這是"root"數(shù)據(jù)庫。要是將一個用戶添加到這個數(shù)據(jù)庫,這個用戶自動繼承所有數(shù)據(jù)庫的權(quán)限。一些特定的服務(wù)器端命令也只能從這個數(shù)據(jù)庫運行,比如列出所有的數(shù)據(jù)庫或者關(guān)閉服務(wù)器。
  ● local: 這個數(shù)據(jù)永遠不會被復(fù)制,可以用來存儲限于本地單臺服務(wù)器的任意集合
  ● config: 當(dāng)Mongo用于分片設(shè)置時,config數(shù)據(jù)庫在內(nèi)部使用,用于保存分片的相關(guān)信息。

2、創(chuàng)建一個集合:
> db.createCollection("emp");
{ "ok" : 1 }
> show databases;
admin  0.000GB
local  0.000GB
stone  0.000GB
這個時候stone數(shù)據(jù)庫才會真正存在。

3、但是很多時候如果按照以上的代碼形式進行會覺得你不正常,因為正常人使用MongoDB數(shù)據(jù)庫集合操作的時候都是直接向里面保存一個數(shù)據(jù)。
> db.dept.insert({"deptno":10,"dname":"財務(wù)部","loc":"北京"})
WriteResult({ "nInserted" : 1 })

4、查看所有集合
> show collections;
dept
emp
發(fā)現(xiàn)dept集合自動創(chuàng)建。

5、查看emp表的數(shù)據(jù)
語法:db.集合名稱.find({若干條件})
> db.dept.find();
{ "_id" : ObjectId("59904d44d31a95e93db0da1c"), "deptno" : 10, "dname" : "財務(wù)部", "loc" : "北京" }
從傳統(tǒng)的數(shù)據(jù)表來看(集合就相當(dāng)于表的結(jié)構(gòu)),表的結(jié)構(gòu)一旦定義就必須按照其定義的要求進行內(nèi)容的編寫。但是MongoDB不一樣,它可以自己隨意擴充數(shù)據(jù)。

6、增加不規(guī)則的數(shù)據(jù)
> var deptData={
... "deptno":20,
... "dname":"研發(fā)部",
... "loc":"深圳",
... "count":20,
... "avg":8000
... };
> db.dept.insert(deptData);
WriteResult({ "nInserted" : 1 })
> db.dept.find()
{ "_id" : ObjectId("59904d44d31a95e93db0da1c"), "deptno" : 10, "dname" : "財務(wù)部", "loc" : "北京" }
{ "_id" : ObjectId("59904f2dd31a95e93db0da1d"), "deptno" : 20, "dname" : "研發(fā)部", "loc" : "深圳", "count" : 20, "avg" : 8000 }
此時dept集合的內(nèi)容可以由用戶隨便定義,完全不用考慮其他的結(jié)構(gòu),那么實際上就必須明確一點了,在MongoDB數(shù)據(jù)庫之中是絕對不可能存在有查看集合結(jié)構(gòu)的操作。

7、關(guān)于ID的問題
在MongoDB集合在的每一行記錄都會自動的生成一個:“"_id" : ObjectId("59904f2dd31a95e93db0da1d")”數(shù)據(jù),這個數(shù)據(jù)組成:“時間戳 + 機器碼 + 進程PID + 計數(shù)器”,這個ID的信息是MongoDB數(shù)據(jù)庫自己為用戶生成的。

8、查看單獨的一個文檔信息
> db.dept.findOne()
{
        "_id" : ObjectId("59904d44d31a95e93db0da1c"),
        "deptno" : 10,
        "dname" : "財務(wù)部",
        "loc" : "北京"
}

9、刪除數(shù)據(jù)
> db.dept.remove({"_id" : ObjectId("59904d44d31a95e93db0da1c")});
WriteResult({ "nRemoved" : 1 })
> db.dept.find();
{ "_id" : ObjectId("59904f2dd31a95e93db0da1d"), "deptno" : 20, "dname" : "研發(fā)部", "loc" : "深圳", "count" : 20, "avg" : 8000 }

10、更新數(shù)據(jù)
> var deptData={
... "deptno":30,
... "dname":"IT",
... "loc":"北京"
... };
> db.dept.update({"_id" : ObjectId("59904f2dd31a95e93db0da1d")},deptData);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.dept.find();
{ "_id" : ObjectId("59904f2dd31a95e93db0da1d"), "deptno" : 30, "dname" : "IT", "loc" : "北京" }

11、刪除集合
語法:db.集合名稱.drop();
> db.dept.drop();
true
> show collections;
emp

12、刪除數(shù)據(jù)庫(刪除當(dāng)前所在的數(shù)據(jù)庫)
> db.dropDatabase();
{ "dropped" : "stone", "ok" : 1 }
> show dbs;
admin  0.000GB
local  0.000GB
刪除數(shù)據(jù)庫是刪除當(dāng)前所在的數(shù)據(jù)庫,必須先切換到數(shù)據(jù)庫后才可以刪除。

感謝各位的閱讀,以上就是“MongoDB常用的基本操作命令”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MongoDB常用的基本操作命令這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI