MongoDB之基本操作與日常維護
阿新 • • 發佈:2018-07-20
啟動 地址 自己的 進制 日常 sea .... object abc MongoDB基本操作
MongoDB的基本操作主要是對數據庫、集合、文檔的操作,包括創建數據庫、刪除數據庫、插入文檔、更改文檔、刪除文檔、和查詢文檔。
操作 | 描述 |
---|---|
show dbs | 查看當前實例下的數據庫列表 |
show users | 顯示用戶 |
use <db_name> | 切換當前數據庫 |
db.help() | 顯示數據庫操作命令 |
show.collections | 顯示當前數據庫中的集合 |
db.foo.help() | 顯示集合操作命令,foo是當前數據庫下的集合 |
db.foo.find() | 對當前數據庫中foo集合進行數據查找 |
MongoDB數據類型
- MongoDB支持許多數據類型的列表下面給出:
- String : 這是最常用的數據類型來存儲數據。在MongoDB中的字符串必須是有效的UTF-8。
- Integer : 這種類型是用來存儲一個數值。整數可以是32位或64位,這取決於您的服務器。
- Boolean : 此類型用於存儲一個布爾值 (true/ false) 。
- Double : 這種類型是用來存儲浮點值。
- Min/ Max keys : 這種類型被用來對BSON元素的最低和最高值比較。
- Arrays : 使用此類型的數組或列表或多個值存儲到一個鍵。
- Timestamp : 時間戳。這可以方便記錄時的文件已被修改或添加。
- Object : 此數據類型用於嵌入式的文件。
- Null : 這種類型是用來存儲一個Null值。
- Symbol : 此數據類型用於字符串相同,但它通常是保留給特定符號類型的語言使用。
- Date : 此數據類型用於存儲當前日期或時間的UNIX時間格式。可以指定自己的日期和時間,日期和年,月,日到創建對象。
- Object ID : 此數據類型用於存儲文檔的ID。
- Binary data : 此數據類型用於存儲二進制數據。
- Code : 此數據類型用於存儲到文檔中的JavaScript代碼。
- Regular expression : 此數據類型用於存儲正則表
#創建數據庫testdb數據庫,使用以下語句 mongos> use testdb; #查詢數據庫,要顯示數據庫必須插入至少一條文檔 mongos> show dbs; #插入數據文檔 mongos> db.tablename.insert({"name":"antian"}); #數據庫生成了 mongos> show dbs; testdb 0.078GB #查詢數據庫 mongos> show dbs; testdb 0.078GB #進入數據庫 mongos> use testdb; #刪除數據庫 mongos> db.dropDatabase(); { "dropped" : "testdb", "ok" : 1 } #查詢數據庫 mongos> show dbs;
#創建集合
#進入數據庫
mongos> use testdb;
#創建集合
mongos> db.createCollection("mycollection")
mongos> show tables;
mycollection
#刪除集合
#進入數據庫
mongos> use testdb;
mongos> show tables;
mycollection
mongos> db.mycollection.drop();
true
mongos> show tables;
#插入文檔
#插入一條文檔
mongos> db.tablesname.insert([{"name":"aaaaa","age":"18"}
#插入兩條文檔
mongos> db.tablesname.insert([{"name":"ddddd","age":"18"},{"name":"eeee","age":"10"}]);
#查詢一個文檔:
mongos> db.tablesname.findOne();
MongoDB日常維護
一.導入導出
mongoimport命令可以把一個特定格式文件中的內容導入到指定的collection中。該工具可以導入JSON格式數據,也可以導入CSV格式的數據。
mongoexport命令可以把一個collection導出成JSON格式或CSV格式的文件。可以通過參數指定導出的數據項,也可以根據指定的條件導出數據。
參數說明:
- -d:指明數據庫的名字
- -c:指明collection的名字
- -f:指明要導出哪些列
- -o:指明要導出的文件名
- -q:指明導出數據的過濾條件
for(var i=1;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i}) //循環寫入100條數據
mongoexport -d school -c info -o /opt/info.json //導出
mongoimport -d school -c info1 --file /opt/info.json //導入到info集合
mongoexport -d school -c info1 -q ‘{"id":{"$eq":10}}‘ -o /opt/top10.json //條件導出指定第10行
二.備份與恢復
備份:mongodump
恢復:mongorestore
參數說明:
- -h: MongoDB所在服務器地址
- -d:需要備份的數據庫實例
- -o:備份的數據存放的位置,該目錄需要提前建立,在備份完成後,系統自動在dump目錄下建立一個test目錄,這個目錄裏面存放該數據庫實例的備份數據。
mkdir /backup //創建存放目錄
mongodump -d abc -o /backup/ //備份abc數據庫
mongorestore -d abc123 --dir=/backup/abc //恢復到abc123數據庫
三.復制數據庫
db.copyDatabase
>db.copyDatabase("abc","abc1") //復制數據庫abc生成abc1
四.克隆集合
runCommand
將abc中的info集合克隆到實例2
mongo --port 27018 //進入實例2
db.runCommand({"cloneCollection":"abc.info","from":"192.168.100.152:27017"})
五.授權啟動
可以配置授權用戶來訪問MongoDB,啟動時必須指定auth=true,否則授權不起作用。
可以將用戶加入到角色,內置數據庫用戶角色包括:read、readWrite,數據庫管理角色包括:dbAdmin、dbOwner、useAdmin,超級用戶角色為root。
vim /usr/bin/mongodb1.conf
......
auth=true
......
mongo
>use admin
>db.createUser({"zx":"root","pwd":"123","roles":"[root"]}) //創建用戶zx,密碼為123,分配到root角色
>db.auth("root","123") //驗證用戶
六.進程管理
- 查看當前正在運行的進程的命令為:db.currentOp()
- 終止正在運行的高消耗資源的進程命令為:db.killOp(opid)
七.MongoDB監控
- 查看數據庫實例的狀態信息:db.serverStatus()
- 查看當前數據庫的統計信息:db.status()
- 查看集合統計信息:db.users.stats()
- 查看集合大小:db.users.dataSize()
- 也可以通過Web界面查看系統監控信息,需要在配置文件中添加下面一行:
httpinterface=true
然後在瀏覽器中通過http://localhost:28017 進行訪問。通過Web頁面可以看到:
- 當前MongoDB的所有連接
- 各個數據庫和Collection的訪問統計,包括:Reads、Writes、Queries、GetMores、Inserts、Updates、Removes。
- 寫鎖的狀態
- 日誌文件的最後幾百行。
- 所有的MongoDB命令。
MongoDB之基本操作與日常維護