摘要:二中常用命令顯示數(shù)據(jù)庫(kù)列表顯示當(dāng)前數(shù)據(jù)庫(kù)中的集合類似關(guān)系數(shù)據(jù)庫(kù)中的表顯示用戶切換當(dāng)前數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則創(chuàng)建數(shù)據(jù)庫(kù)。注意操作同時(shí)可以創(chuàng)建數(shù)據(jù)庫(kù),如果一個(gè)不存在的數(shù)據(jù)庫(kù)名,則執(zhí)行后,會(huì)創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫(kù)。如果指定字段,則會(huì)更新該的數(shù)據(jù)。
.......................................................................................
環(huán)境:centos7
Ip: 172.16.200.48
..............................................................................................
# 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配置文件, 通過這個(gè)配置文件進(jìn)行啟動(dòng).
# vim /etc/mongodb.conf 配置文件參數(shù)說明: mongodb的參數(shù)說明: ?--dbpath 數(shù)據(jù)庫(kù)路徑(數(shù)據(jù)文件) ?--logpath 日志文件路徑 ?--master 指定為主機(jī)器 ?--slave 指定為從機(jī)器 ?--source 指定主機(jī)器的IP地址 ?--pologSize 指定日志文件大小不超過64M.因?yàn)閞esync是非常操作量大且耗時(shí),最好通過設(shè)置一個(gè)足夠大的oplogSize來避免resync(默認(rèn)的 oplog大小是空閑磁盤大小的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、通過配置文件啟動(dòng)
# mongod -f /etc/mongodb.conf ##啟動(dòng)
出現(xiàn)successfully表示啟動(dòng)成功了。
說明
MongoDB的啟動(dòng):
不建議用service?mongod?start或者chkconfig?mongod?on來啟動(dòng)MongoDB,因?yàn)閙ongod每次啟動(dòng)需要帶參數(shù),不然會(huì)造成錯(cuò)誤;?
建議用mongod命令來啟動(dòng),先設(shè)置好配置文件/etc/mongod.conf后,每次手動(dòng)用命令啟動(dòng):mongod -f /etc/mongodb.conf
或者設(shè)置開機(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ì);
# 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三、Shell中的基本操作:增刪改查 1. # mongo#切換當(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ù)查找(由于沒有條件,會(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)
啟動(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() 是用來從數(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()方法向集合中插入文檔,語法如下:
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í)候,如果我們沒有為該文檔指定_id,mongodb將會(huì)為我們的文檔自動(dòng)創(chuàng)建一個(gè)不會(huì)重復(fù)的ObjectId
有條件的查詢已插入文檔
db.[集合名].find(, ) # > 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)單的說就是一個(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})
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/19098.html
摘要:瀏覽器下輸入如果能正常顯示數(shù)據(jù)庫(kù)的信息,則表示啟動(dòng)成功。集合名可以是滿足下列條件的條件集合名不能是空字符串。方法結(jié)果顯示在一個(gè)格式化的方式,可以使用方法方法要限制中的記錄,需要使用方法。命令的基本語法如下恢復(fù)數(shù)據(jù)恢復(fù)備份數(shù)據(jù)使用的命令。 概念 MongoDB 是一個(gè)跨平臺(tái)的,面向文檔的數(shù)據(jù)庫(kù),提供高性能,高可用性和可擴(kuò)展性方便。 MongoDB 工作在收集和文件的概念。 什么是No...
摘要:瀏覽器下輸入如果能正常顯示數(shù)據(jù)庫(kù)的信息,則表示啟動(dòng)成功。集合名可以是滿足下列條件的條件集合名不能是空字符串。方法結(jié)果顯示在一個(gè)格式化的方式,可以使用方法方法要限制中的記錄,需要使用方法。命令的基本語法如下恢復(fù)數(shù)據(jù)恢復(fù)備份數(shù)據(jù)使用的命令。 概念 MongoDB 是一個(gè)跨平臺(tái)的,面向文檔的數(shù)據(jù)庫(kù),提供高性能,高可用性和可擴(kuò)展性方便。 MongoDB 工作在收集和文件的概念。 什么是No...
摘要:可選,拋出異常的級(jí)別。示例教程更新一條數(shù)據(jù)標(biāo)題。命令行下執(zhí)行進(jìn)入數(shù)據(jù)庫(kù)進(jìn)入庫(kù)可查看當(dāng)前庫(kù)用戶列表執(zhí)行新建用戶設(shè)置賬戶密碼,并指定級(jí)別。重啟服務(wù)重新進(jìn)入數(shù)據(jù)庫(kù),發(fā)現(xiàn)命令無法執(zhí)行,報(bào)權(quán)限不足錯(cuò)誤。命令可以正常執(zhí)行。 1.MongoDB 簡(jiǎn)介 MongoDB 是由C++語言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。MongoDB ...
閱讀 2092·2021-09-30 09:47
閱讀 769·2021-09-22 15:43
閱讀 2044·2019-08-30 15:52
閱讀 2488·2019-08-30 15:52
閱讀 2645·2019-08-30 15:44
閱讀 978·2019-08-30 11:10
閱讀 3424·2019-08-29 16:21
閱讀 3354·2019-08-29 12:19