日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mongo备份索引_【MongoDB学习之四】索引 聚合 备份与恢复 监控

發(fā)布時間:2025/4/16 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mongo备份索引_【MongoDB学习之四】索引 聚合 备份与恢复 监控 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

環(huán)境

MongoDB 4.0

CentOS 6.5_x64

一、索引

語法

ensureIndex()方法基本語法格式如下所示:

>db.COLLECTION_NAME.ensureIndex({KEY:1})

語法中 Key 值為你要創(chuàng)建的索引字段,1為指定按升序創(chuàng)建索引,如果你想按降序來創(chuàng)建索引指定為-1即可。

實例

>db.mycol.ensureIndex({"title":1})

ensureIndex() 方法中你也可以設(shè)置使用多個字段創(chuàng)建索引(關(guān)系型數(shù)據(jù)庫中稱作復(fù)合索引)。

>db.mycol.ensureIndex({"title":1,"description":-1})

二、聚合

語法

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

管道

管道在Unix和Linux中一般用于將當前命令的輸出結(jié)果作為下一個命令的參數(shù)。

MongoDB的聚合管道將MongoDB文檔在一個管道處理完畢后將結(jié)果傳遞給下一個管道處理。管道操作是可以重復(fù)的。

表達式:處理輸入文檔并輸出。表達式是無狀態(tài)的,只能用于計算當前聚合管道的文檔,不能處理其它的文檔。

這里我們介紹一下聚合框架中常用的幾個操作:

$project:修改輸入文檔的結(jié)構(gòu)。可以用來重命名、增加或刪除域,也可以用于創(chuàng)建計算結(jié)果以及嵌套文檔。

$match:用于過濾數(shù)據(jù),只輸出符合條件的文檔。$match使用MongoDB的標準查詢操作。

$limit:用來限制MongoDB聚合管道返回的文檔數(shù)。

$skip:在聚合管道中跳過指定數(shù)量的文檔,并返回余下的文檔。

$unwind:將文檔中的某一個數(shù)組類型字段拆分成多條,每條包含數(shù)組中的一個值。

$group:將集合中的文檔分組,可用于統(tǒng)計結(jié)果。

$sort:將輸入文檔排序后輸出。

$geoNear:輸出接近某一地理位置的有序文檔

三、備份與恢復(fù)

1、備份-mongodump

mongodump命令腳本語法如下:

>mongodump -h dbhost -d dbname -o dbdirectory

-h:

MongDB所在服務(wù)器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017

-d:

需要備份的數(shù)據(jù)庫實例,例如:test

-o:

備份的數(shù)據(jù)存放位置,例如:c:\data\dump,當然該目錄需要提前建立,在備份完成后,系統(tǒng)自動在dump目錄下建立一個test目錄,這個目錄里面存放該數(shù)據(jù)庫實例的備份數(shù)據(jù)。

語法 描述 實例

mongodump 默認在bin目錄下創(chuàng)建dump目錄備份

mongodump --host HOST_NAME --port PORT_NUMBER 該命令將備份所有MongoDB數(shù)據(jù) mongodump --host w3cschool.cn --port 27017

mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY mongodump --dbpath /data/db/ --out /data/backup/

mongodump --collection COLLECTION --db DB_NAME 該命令將備份指定數(shù)據(jù)庫的集合。 mongodump --collection mycol --db test

2、恢復(fù)-mongorestore

語法

mongorestore命令腳本語法如下:

>mongorestore -h dbhost -d dbname --directoryperdb dbdirectory

-h:

MongoDB所在服務(wù)器地址

-d:

需要恢復(fù)的數(shù)據(jù)庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2

--directoryperdb:

備份數(shù)據(jù)所在位置,例如:c:\data\dump\test,這里為什么要多加一個test,而不是備份時候的dump,讀者自己查看提示吧!

--drop:

恢復(fù)的時候,先刪除當前數(shù)據(jù),然后恢復(fù)備份的數(shù)據(jù)。就是說,恢復(fù)后,備份后添加修改的數(shù)據(jù)都會被刪除,慎用哦!

mongorestore不加參數(shù) 默認恢復(fù)bin目錄下dump下的數(shù)據(jù)

四、監(jiān)控

1、mongostat 命令

mongostat是mongodb自帶的狀態(tài)檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態(tài),并輸出。如果你發(fā)現(xiàn)數(shù)據(jù)庫突然變慢或者有其他問題的話,你第一手的操作就考慮采用mongostat來查看mongo的狀態(tài)。

啟動你的Mongod服務(wù),進入到你安裝的MongoDB目錄下的bin目錄, 然后輸入mongostat命令。

2、mongotop 命令

mongotop也是mongodb下的一個內(nèi)置工具,mongotop提供了一個方法,用來跟蹤一個MongoDB的實例,查看哪些大量的時間花費在讀取和寫入數(shù)據(jù)。 mongotop提供每個集合的水平的統(tǒng)計數(shù)據(jù)。默認情況下,mongotop返回值的每一秒。

啟動你的Mongod服務(wù),進入到你安裝的MongoDB目錄下的bin目錄, 然后輸入mongotop命令

mongotop 10:后面的10是參數(shù) ,可以不使用,等待的時間長度,以秒為單位,mongotop等待調(diào)用之間。通過的默認mongotop返回數(shù)據(jù)的每一秒

mongotop --locks:報告每個數(shù)據(jù)庫的鎖的使用中,使用mongotop - 鎖

輸出結(jié)果字段說明:

ns:

包含數(shù)據(jù)庫命名空間,后者結(jié)合了數(shù)據(jù)庫名稱和集合。

db:

包含數(shù)據(jù)庫的名稱。名為 . 的數(shù)據(jù)庫針對全局鎖定,而非特定數(shù)據(jù)庫。

total:

mongod花費的時間工作在這個命名空間提供總額。

read:

提供了大量的時間,這mongod花費在執(zhí)行讀操作,在此命名空間。

write:

提供這個命名空間進行寫操作,這mongod花了大量的時間。

參考:

總結(jié)

以上是生活随笔為你收集整理的mongo备份索引_【MongoDB学习之四】索引 聚合 备份与恢复 监控的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。