您好,登錄后才能下訂單哦!
這篇文章主要講解了“MongoDB的安裝及常用操作命令”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MongoDB的安裝及常用操作命令”吧!
環境:centos7
Ip: 172.16.200.48
..............................................................................................
一、Mongodb的安裝與啟動
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、配置環境變量
# vim /etc/profile
添加一下內容:
export MONGODB_HOME=/usr/local/mongodb export PATH=$MONGODB_HOME/bin:$PATH
步驟 3、查看mongodb版本信息
# mongod -v
安裝成功。
2、mongo的啟動
步驟 4、創建數據庫目錄(MongoDB需要自建數據庫文件夾)
# mkdir -p /data/mongodb # mkdir -p /data/mongodb/log # touch /data/logs/mongodb/mongodb.log
步驟 5、添加配置文件
新建mongodb.conf配置文件, 通過這個配置文件進行啟動.
# vim /etc/mongodb.conf
配置文件參數說明:
mongodb的參數說明:
?--dbpath 數據庫路徑(數據文件)
?--logpath 日志文件路徑
?--master 指定為主機器
?--slave 指定為從機器
?--source 指定主機器的IP地址
?--pologSize 指定日志文件大小不超過64M.因為resync是非常操作量大且耗時,***通過設置一個足夠大的oplogSize來避免resync(默認的 oplog大小是空閑磁盤大小的5%)。
?--logappend 日志文件末尾添加
?--port 啟用端口號
?--fork 在后臺運行
?--only 指定只復制哪一個數據庫
?--slavedelay 指從復制檢測的時間間隔
?--auth 是否需要驗證權限登錄(用戶名和密碼)
配置文件內容:
dbpath=/data/mongodb
logpath=/data/logs/mongodb/mongodb.log
logappend=true
port=27017
fork=true
##auth = true # 先關閉, 創建好用戶在啟動
步驟 6、通過配置文件啟動
# mongod -f /etc/mongodb.conf ##啟動
出現successfully表示啟動成功了。
說明
MongoDB的啟動:
不建議用service mongod start或者chkconfig mongod on來啟動MongoDB,因為mongod每次啟動需要帶參數,不然會造成錯誤;
建議用mongod命令來啟動,先設置好配置文件/etc/mongod.conf后,每次手動用命令啟動:mongod -f /etc/mongodb.conf
或者設置開機重啟: echo “mongod –f /etc/mongod.conf” >>/etc/rc.d/rc.local
MongoDB的關閉
不建議使用強制關閉MongoDB: service mongod stop
推薦使用:從mongodb的admin中關閉
> use admin switched to db admin > db.shutdownServer() server should be down...
或者mongod --shutdown
使用shutdownServer關閉MongoDB,如有MongoDB主從服務器,則在服務關閉前同步主從服務器;強制關閉則不會;
步驟 7、進入mongodb的后臺管理shell
# cd /usr/local/mongodb/bin # ./mongo
步驟 8、創建數據庫
> use test 創建數據庫test
使用use DATABASE_NAME創建一個數據庫。如果數據庫不存在,則創建數據庫,否則切換到指定數據庫。
二、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 #顯示數據庫列表> show collections #顯示當前數據庫中的集合(類似關系數據庫中的表)> show users #顯示用戶> use <db name> #切換當前數據庫,如果數據庫不存在則創建數據庫。> db.help() #顯示數據庫操作命令,里面有很多的命令> db.foo.help() #顯示集合操作命令,同樣有很多的命令,foo指的是當前數據庫下,一個叫foo的集合,并非真正意義上的命令> db.foo.find() #對于當前數據庫中的foo集合進行數據查找(由于沒有條件,會列出所有數據)> db.foo.find( { a : 1 } ) #對于當前數據庫中的foo集合進行查找,條件是數據中有一個屬性叫a,且a的值為1> db.dropDatabase() #刪除當前使用數據庫> db.cloneDatabase("127.0.0.1") #將指定機器上的數據庫的數據克隆到當前數據庫> db.copyDatabase("mydb", "temp", "127.0.0.1") #將本機的mydb的數據復制到temp數據庫中> db.repairDatabase() #修復當前數據庫> db.getName() #查看當前使用的數據庫,也可以直接用db> db.stats() #顯示當前db狀態> db.version() #當前db版本> db.getMongo() #查看當前db的鏈接機器地址> db.serverStatus() #查看數據庫服務器的狀態
三、Shell中的基本操作:增刪改查
1. # mongo
啟動mongodb數據庫
2. > db
可以查看db當前指向哪個數據庫
3. 進入數據庫 > use test;
使用use DATABASE_NAME使用use 數據庫名就可以切換全局變量db當前指向的數據庫。注意:use操作同時可以創建數據庫,如果use+一個不存在的數據庫名,則use執行后,MongoDB會創建對應數據庫。
4. 查詢數據庫 > show dbs; (要顯示數據庫必須插入至少一條文檔)
5. 刪除數據庫 > db.dropDatabase();
6.創建、刪除集合
createCollection() 方法
db.createCollection(name, options)
在命令中, name 是要創建的集合的名稱. Options 是一個文件,用于指定配置的集合
刪除集合:drop() 方法
db.COLLECTION_NAME.drop() 是用來從數據庫中刪除一個集合
#創建集合 #進入數據庫mongos> use test; mongos> db.createCollection("mycollection") { "ok" : 1 } mongos> show collections; #查看集合 mycollection #刪除集合 #進入數據庫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 })
以上實例中col是集合名,如果該集合不在該數據庫中,MongoDB會自動創建該集合并插入文檔。
查看已插入的文檔
> db.col.find() { "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris", "age" : 22 }
在我們插入文檔的時候,如果我們沒有為該文檔指定_id,mongodb將會為我們的文檔自動創建一個不會重復的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字段,則會更新該_id的數據。
插入多個文檔
如果我們在insert中傳入了多個文檔,mongodb只會插入***個文檔,下面的代碼中只插入了***個文檔。
> db.user.find() > db.user.insert({name:"user1"},{name:"user2"}) > db.user.find() { "_id" : ObjectId("519cd757f83727a8baf0a8e2"), "name" : "user1" }
如果我們想一次插入多個文檔,可以將多個文檔組合成一個數組,這樣就能夠插入成功了,例子代碼如下:
> db.user.find() > db.user.insert([{name:"user1"},{name:"user2"}]) > db.user.find() { "_id" : ObjectId("519cd842f83727a8baf0a8e3"), "name" : "user1" } { "_id" : ObjectId("519cd842f83727a8baf0a8e4"), "name" : "user2" }
我們可以使用javascript批量插入數據。由于mongodb shell簡單的說就是一個javascript shell所以javascript代碼可以在mongodb shell中運行,所以我們可以使用javascript代碼進行批量插入數據,例如我們插入10個用戶到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.刪除文檔
#刪除文檔內容 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.創建索引
mongos> db.col.ensureIndex({"id":1})
感謝各位的閱讀,以上就是“MongoDB的安裝及常用操作命令”的內容了,經過本文的學習后,相信大家對MongoDB的安裝及常用操作命令這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。