中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

MongoDB基本操作、備份還原及用戶管理

發布時間:2020-06-17 21:23:00 來源:網絡 閱讀:5265 作者:MaAiQiang 欄目:MongoDB數據庫

今日趁周末得空,將近日在學習的MongoDB數據庫常用命令作以下整理,方便工作中查看

MongoDB的邏輯結構主要由文檔、集合和數據庫三部分組成。其中文檔是MongoDB的核心概念,它是MongoDB邏輯存儲的最小單元,相當于關系型數據庫中的一行記錄,多個文檔組成集合,集合相當于關系型數據庫中的表,多個集合組成數據庫。

SQL術語 說明 MongoDB術語 說明
database 數據庫 database 數據庫
table 數據庫表 collection 集合
row 記錄 document 行域
column 字段 field
index index 索引
table joins 表連接 不支持
primary key 主鍵 primary key 自動將_id字段設置為主鍵

一個MongoDB中可以創建多個數據庫,默認的數據庫為test。

默認數據庫:

  • admin:從權限的角度來看,這是root數據庫。將一個用戶添加到這個數據庫中,該用戶將自動繼承所有數據庫的權限;
  • local:這個數據永遠不會被復制,可用來存儲限于本地單臺服務器的任意集合;
  • config:當Mongo用于分片設置時,config數據庫在內部使用,用于保存分片的相關信息。

MongoDB 登錄、退出

#本地登錄(默認實例端口號為:--port=27017,可以不寫)
> mongo

#登錄遠程主機的實例
> mongo --host 192.168.1.2 --port =27017

#退出MongoDB
> exit

數據庫

#創建數據庫(如果數據庫不存在,則創建數據庫,否則切換到指定數據庫)
> use school

#查看所有數據庫
> show dbs

#刪除school數據庫
> use school
> db.dropDatabase()

#顯示數據庫操作命令
> db.help()

集合

集合就是MongoDB文檔組,類似于關系數據庫管理系統中的把表格,集合存于數據庫中,集合沒有固定的結構,這樣子集合中可以存放不同格式和類型的表格。

#創建info集合
> db.createcollection('info')

#查看集合
方法一:
> show tabels

方法二:
> show colletctions

#顯示info集合操作命令
> db.info.help()

文檔(增、刪、改、查)

文檔是一個鍵值對(BSON),不需要設置相同的字段,并且相同的字段不需要相同的數據類型。

1. 插入文檔

#插入一條記錄
> db.info.insert({"id":1,"score":88,"address":"金川校區","hobby":["game","talk","sport"]})

#向指定集合中插入一條文檔數據
> db.collection.insertOne()

#向指定集合中插入多條文檔數據
> db.collection.insertMany()

#通過循環批量插入數據
> for(var i=1;i<100;i++)db.info.insert({"id":i,"name":"jack"+i})

2. 刪除文檔

#刪除info集合中id=1的文檔
> db.info.remove({"id":"1"})

3. 修改文檔

#修改info集合id=1的name值為"zhangsan"文檔
db.info.update({"id":"1"},{$set:{"name":"zhangsan"}})

4. 查詢文檔

#查詢info集合所有文檔
> db.info.find()

#查詢info集合id為1的文檔
> db.info.findOne({id:1})

#統計記錄數
> db.info.count()

備份與恢復數據庫

  1. 通過mongoexport和mongoimport目錄來導出導入數據;
  2. 導出數據文件的格式為:JSON格式或CSV格式;
參數說明:
  • -d:數據庫的名稱
  • -c:collection的名稱
  • -f:要導出哪些列
  • -o:要導出的文件名
  • -q:到導出數據的過濾條件
#備份本地school數據庫
> [root@localhost ~]# mkdir /backup
[root@localhost ~]# mongodump -d school -o /backup/
2018-07-14T03:36:44.427-0400    writing school.info to
2018-07-14T03:36:44.429-0400    done dumping school.info (99 documents)

#恢復本地school數據庫至數據庫abc中
> [root@localhost ~]# mongorestore -d abc --dir=/backup/school
2018-07-14T03:37:40.174-0400    the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2018-07-14T03:37:40.174-0400    building a list of collections to restore from /backup/school dir
2018-07-14T03:37:40.175-0400    reading metadata for abc.info from /backup/school/info.metadata.json
2018-07-14T03:37:40.187-0400    restoring abc.info from /backup/school/info.bson
2018-07-14T03:37:40.208-0400    no indexes to restore
2018-07-14T03:37:40.208-0400    finished restoring abc.info (99 documents)
2018-07-14T03:37:40.209-0400    done

#導出本機school數據庫info集合
> [root@localhost ~]# mongoexport -d school -c info -o /backup/info.json
2018-07-14T03:44:41.610-0400    connected to: localhost
2018-07-14T03:44:41.613-0400    exported 99 records

#導入備份數據至本機school數據庫user集合
> [root@localhost ~]# mongoimport -d school -c user --file /backup/info.json
2018-07-14T03:45:09.300-0400    connected to: localhost
2018-07-14T03:45:09.330-0400    imported 99 documents

#導出本機school數據庫user1集合id=10的數據
> [root@localhost ~]# mongoexport -d school -c user -q '{"id":{"$lt":10}}' -o /backup/top10.json
2018-07-14T03:51:23.968-0400    connected to: localhost
2018-07-14T03:51:23.969-0400    exported 9 records

復制數據庫

> show dbs
> db.copyDatabase("school","school_1")

![image](https://note.youdao.com/favicon.ico)

克隆集合

#啟用如下2個實例
> [root@localhost ~]# netstat  -tunlp | grep mongod
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      61249/mongod
tcp        0      0 0.0.0.0:27018           0.0.0.0:*               LISTEN      61212/mongod

#登錄端口號為27018的實例
> mongo --port 27018

#查詢數據庫
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

#克隆端口號為27017實例的school數據庫的info表至本實例數據庫中
> db.runCommand({"cloneCollection":"school.info","from":"192.168.100.100:27017"})

![image](https://note.youdao.com/favicon.ico)

用戶授權(認證登錄)

#登錄mongodb
mongo

#在admin數據庫創建新用戶root:123123
> use admin
> db.createUser({"user":"root","pwd":"123123","roles":["root"]})
Successfully added user: { "user" : "root", "roles" : [ "root" ] }

#退出
> exit

#關閉mongodb服務
mongod -f /data/conf/mongodb1.conf --shutdown

#帶認證參數方式啟動mongodb服務
mongod -f /data/conf/mongodb1.conf --auth

#登錄mongodb數據庫
mongo

#查詢數據庫
show dbs
> 不顯示內容,這里要先授權認證后才能執行操作

> use admin

#使用授權root用戶驗證
> db.auth("root":"123123")

#再次查詢,已經可以查詢數據了
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
school  0.000GB

#退出
> exit

進程管理

1. 查看當前正在運行的進程的命令:db.currentOp() ------> 獲取opid進程號
2. 終止正在運行的高消耗資源的進程命令:db.killOP(opid)

更詳細的內容,請多參考 MongoDB在線幫助文檔

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲城县| 大悟县| 新干县| 个旧市| 都安| 平远县| 宜春市| 黎城县| 阳西县| 曲沃县| 高要市| 漯河市| 轮台县| 利川市| 图木舒克市| 嘉荫县| 龙川县| 华容县| 沈丘县| 岑巩县| 尼玛县| 罗江县| 丰原市| 庆阳市| 屏东市| 都匀市| 茶陵县| 开化县| 徐水县| 苗栗市| 临澧县| 大庆市| 台北县| 梁山县| 呼和浩特市| 沙河市| 汉寿县| 富平县| 即墨市| 湟源县| 平泉县|