溫馨提示×

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

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

MongoDB的安裝及常用操作命令

發(fā)布時(shí)間:2021-08-19 18:22:31 來(lái)源:億速云 閱讀:181 作者:chen 欄目:數(shù)據(jù)庫(kù)

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

環(huán)境:centos7

Ip: 172.16.200.48

..............................................................................................

一、Mongodb的安裝與啟動(dòng)

1、mongo的安裝

步驟 1、下載:

# cd /usr/local/src/  # wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.3.tgz  # tar -zxvf mongodb-linux-x86_64-rhel70-3.4.3.tgz

步驟 2、配置環(huán)境變量

# vim /etc/profile

添加一下內(nèi)容:

export MONGODB_HOME=/usr/local/mongodb  export PATH=$MONGODB_HOME/bin:$PATH

步驟 3、查看mongodb版本信息

# mongod -v

安裝成功。

2、mongo的啟動(dòng)

步驟 4、創(chuàng)建數(shù)據(jù)庫(kù)目錄(MongoDB需要自建數(shù)據(jù)庫(kù)文件夾)

# mkdir -p /data/mongodb  # mkdir -p /data/mongodb/log  # touch /data/logs/mongodb/mongodb.log

步驟 5、添加配置文件

新建mongodb.conf配置文件, 通過(guò)這個(gè)配置文件進(jìn)行啟動(dòng).

# vim /etc/mongodb.conf

配置文件參數(shù)說(shuō)明:

mongodb的參數(shù)說(shuō)明:

?--dbpath 數(shù)據(jù)庫(kù)路徑(數(shù)據(jù)文件)

?--logpath 日志文件路徑

?--master 指定為主機(jī)器

?--slave 指定為從機(jī)器

?--source 指定主機(jī)器的IP地址

?--pologSize  指定日志文件大小不超過(guò)64M.因?yàn)閞esync是非常操作量大且耗時(shí),***通過(guò)設(shè)置一個(gè)足夠大的oplogSize來(lái)避免resync(默認(rèn)的  oplog大小是空閑磁盤(pán)大小的5%)。

?--logappend 日志文件末尾添加

?--port 啟用端口號(hào)

?--fork 在后臺(tái)運(yùn)行

?--only 指定只復(fù)制哪一個(gè)數(shù)據(jù)庫(kù)

?--slavedelay 指從復(fù)制檢測(cè)的時(shí)間間隔

?--auth 是否需要驗(yàn)證權(quán)限登錄(用戶名和密碼)

配置文件內(nèi)容:

dbpath=/data/mongodb

logpath=/data/logs/mongodb/mongodb.log

logappend=true

port=27017

fork=true

##auth = true # 先關(guān)閉, 創(chuàng)建好用戶在啟動(dòng)

步驟 6、通過(guò)配置文件啟動(dòng)

# mongod -f /etc/mongodb.conf ##啟動(dòng)

出現(xiàn)successfully表示啟動(dòng)成功了。

說(shuō)明

MongoDB的啟動(dòng):

不建議用service mongod start或者chkconfig mongod  on來(lái)啟動(dòng)MongoDB,因?yàn)閙ongod每次啟動(dòng)需要帶參數(shù),不然會(huì)造成錯(cuò)誤;

建議用mongod命令來(lái)啟動(dòng),先設(shè)置好配置文件/etc/mongod.conf后,每次手動(dòng)用命令啟動(dòng):mongod -f  /etc/mongodb.conf

或者設(shè)置開(kāi)機(jī)重啟: echo “mongod –f /etc/mongod.conf” >>/etc/rc.d/rc.local

MongoDB的關(guān)閉

不建議使用強(qiáng)制關(guān)閉MongoDB: service mongod stop

推薦使用:從mongodb的admin中關(guān)閉

> use admin  switched to db admin  > db.shutdownServer()  server should be down...

或者mongod --shutdown

使用shutdownServer關(guān)閉MongoDB,如有MongoDB主從服務(wù)器,則在服務(wù)關(guān)閉前同步主從服務(wù)器;強(qiáng)制關(guān)閉則不會(huì);

步驟 7、進(jìn)入mongodb的后臺(tái)管理shell

# cd /usr/local/mongodb/bin  # ./mongo

步驟 8、創(chuàng)建數(shù)據(jù)庫(kù)

> use test 創(chuàng)建數(shù)據(jù)庫(kù)test

使用use DATABASE_NAME創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)不存在,則創(chuàng)建數(shù)據(jù)庫(kù),否則切換到指定數(shù)據(jù)庫(kù)。

二、Mongo中常用命令

[root@snails ~]# ps -ef|grep mongod  [root@snails ~]# mongo --host=127.0.0.1 --port=27017  MongoDB shell version: 3.2.7  connecting to: 127.0.0.1:27017/test> show dbs #顯示數(shù)據(jù)庫(kù)列表> show collections #顯示當(dāng)前數(shù)據(jù)庫(kù)中的集合(類似關(guān)系數(shù)據(jù)庫(kù)中的表)> show users #顯示用戶> use <db name> #切換當(dāng)前數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則創(chuàng)建數(shù)據(jù)庫(kù)。> db.help() #顯示數(shù)據(jù)庫(kù)操作命令,里面有很多的命令> db.foo.help() #顯示集合操作命令,同樣有很多的命令,foo指的是當(dāng)前數(shù)據(jù)庫(kù)下,一個(gè)叫foo的集合,并非真正意義上的命令> db.foo.find() #對(duì)于當(dāng)前數(shù)據(jù)庫(kù)中的foo集合進(jìn)行數(shù)據(jù)查找(由于沒(méi)有條件,會(huì)列出所有數(shù)據(jù))> db.foo.find( { a : 1 } ) #對(duì)于當(dāng)前數(shù)據(jù)庫(kù)中的foo集合進(jìn)行查找,條件是數(shù)據(jù)中有一個(gè)屬性叫a,且a的值為1> db.dropDatabase() #刪除當(dāng)前使用數(shù)據(jù)庫(kù)> db.cloneDatabase("127.0.0.1") #將指定機(jī)器上的數(shù)據(jù)庫(kù)的數(shù)據(jù)克隆到當(dāng)前數(shù)據(jù)庫(kù)> db.copyDatabase("mydb", "temp", "127.0.0.1") #將本機(jī)的mydb的數(shù)據(jù)復(fù)制到temp數(shù)據(jù)庫(kù)中> db.repairDatabase() #修復(fù)當(dāng)前數(shù)據(jù)庫(kù)> db.getName() #查看當(dāng)前使用的數(shù)據(jù)庫(kù),也可以直接用db> db.stats() #顯示當(dāng)前db狀態(tài)> db.version() #當(dāng)前db版本> db.getMongo() #查看當(dāng)前db的鏈接機(jī)器地址> db.serverStatus() #查看數(shù)據(jù)庫(kù)服務(wù)器的狀態(tài)

三、Shell中的基本操作:增刪改查

1. # mongo

啟動(dòng)mongodb數(shù)據(jù)庫(kù)

2. > db

可以查看db當(dāng)前指向哪個(gè)數(shù)據(jù)庫(kù)

3. 進(jìn)入數(shù)據(jù)庫(kù) > use test;

使用use DATABASE_NAME使用use  數(shù)據(jù)庫(kù)名就可以切換全局變量db當(dāng)前指向的數(shù)據(jù)庫(kù)。注意:use操作同時(shí)可以創(chuàng)建數(shù)據(jù)庫(kù),如果use+一個(gè)不存在的數(shù)據(jù)庫(kù)名,則use執(zhí)行后,MongoDB會(huì)創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫(kù)。

4. 查詢數(shù)據(jù)庫(kù) > show dbs; (要顯示數(shù)據(jù)庫(kù)必須插入至少一條文檔)

5. 刪除數(shù)據(jù)庫(kù) > db.dropDatabase();

6.創(chuàng)建、刪除集合

createCollection() 方法

db.createCollection(name, options)

在命令中, name 是要?jiǎng)?chuàng)建的集合的名稱. Options 是一個(gè)文件,用于指定配置的集合

刪除集合:drop() 方法

db.COLLECTION_NAME.drop() 是用來(lái)從數(shù)據(jù)庫(kù)中刪除一個(gè)集合

#創(chuàng)建集合 #進(jìn)入數(shù)據(jù)庫(kù)mongos> use test; mongos> db.createCollection("mycollection") { "ok" : 1 } mongos> show collections;   #查看集合 mycollection  #刪除集合 #進(jìn)入數(shù)據(jù)庫(kù)mongos> use testdb; mongos> show collections; mycollection mongos> db.mycollection.drop(); true mongos> show collections;

7. 插入文檔

MongoDB使用insert()或save()方法向集合中插入文檔,語(yǔ)法如下:

db.COLLECTION_NAME.insert(document)

插入文檔

> use test  switched to db test  > db.col.insert({name:'morris',age:22})  WriteResult({ "nInserted" : 1 })

以上實(shí)例中col是集合名,如果該集合不在該數(shù)據(jù)庫(kù)中,MongoDB會(huì)自動(dòng)創(chuàng)建該集合并插入文檔。

查看已插入的文檔

> db.col.find()  { "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris", "age" : 22 }

在我們插入文檔的時(shí)候,如果我們沒(méi)有為該文檔指定_id,mongodb將會(huì)為我們的文檔自動(dòng)創(chuàng)建一個(gè)不會(huì)重復(fù)的ObjectId

有條件的查詢已插入文檔

db.[集合名].find( <query>, <projection> )  # > db.user.find({name:"user2"}) ##查詢name為user2這條記錄  # > db.user.find({name:"user2"},{age:1}); ## 查詢name為user2這條記錄的age字段

定義變量插入文檔

> doc={name:'jack',age:20}  { "name" : "jack", "age" : 20 }  > db.col.insert(doc)  WriteResult({ "nInserted" : 1 })  > db.col.find()  { "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris", "age" : 22 }  { "_id" : ObjectId("56e12f49de2a8692a3099068"), "name" : "jack", "age" : 20 }

插入文檔也可以使用db.col.save(document)命令。如果不指定_id  字段save()方法類似于insert()方法。如果指定_id字段,則會(huì)更新該_id的數(shù)據(jù)。

插入多個(gè)文檔

如果我們?cè)趇nsert中傳入了多個(gè)文檔,mongodb只會(huì)插入***個(gè)文檔,下面的代碼中只插入了***個(gè)文檔。

> db.user.find()  > db.user.insert({name:"user1"},{name:"user2"})  > db.user.find()  { "_id" : ObjectId("519cd757f83727a8baf0a8e2"), "name" : "user1" }

如果我們想一次插入多個(gè)文檔,可以將多個(gè)文檔組合成一個(gè)數(shù)組,這樣就能夠插入成功了,例子代碼如下:

> db.user.find()  > db.user.insert([{name:"user1"},{name:"user2"}])  > db.user.find()  { "_id" : ObjectId("519cd842f83727a8baf0a8e3"), "name" : "user1" }  { "_id" : ObjectId("519cd842f83727a8baf0a8e4"), "name" : "user2" }

我們可以使用javascript批量插入數(shù)據(jù)。由于mongodb shell簡(jiǎn)單的說(shuō)就是一個(gè)javascript  shell所以javascript代碼可以在mongodb  shell中運(yùn)行,所以我們可以使用javascript代碼進(jìn)行批量插入數(shù)據(jù),例如我們插入10個(gè)用戶到user集合中,代碼如下:

> for(i=1;i<=10;i++){  ... db.user.insert({_id:i,name:"user"+i,age:10+i})  ... }

8.更新文檔

#顯示集合文檔  mongos> db.col.find();  { "_id" : ObjectId("55113e5477eaee1608881c84"), "name" : "antian" }  #更新文檔  mongos> db.col.update({"name":"antian"},{"name":"wuhan"});  #顯示集合文檔  mongos> db.col.find();  { "_id" : ObjectId("55113e5477eaee1608881c84"), "name" : "wuhan" }

9.刪除文檔

#刪除文檔內(nèi)容  mongos> db.col.remove({"name":"antian"});  #刪除集合:db.col.drop();

10.限制記錄

mongos> db.col.find({},{"sip":1,_id:0}).limit(2);

11.排序文檔

降序

mongos> db.col.find({},{"age":1,_id:0}).sort({"age":-1});

升序

mongos> db.col.find({},{"age":1,_id:0}).sort({"age":1});

12.創(chuàng)建索引

mongos> db.col.ensureIndex({"id":1})

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

向AI問(wèn)一下細(xì)節(jié)

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

AI