在上一篇mongodb Aggregation聚合操作之$lookup中詳細(xì)介紹了mongodb聚合操作中的$lookup使用以及參數(shù)細(xì)節(jié)。本篇將開始介紹Aggregation聚合操作中的$collStats操作。
說明:
返回關(guān)于集合或視圖的統(tǒng)計(jì)信息。請注意:$collStats必須是聚合管道的第一個(gè)階段,否則管道將返回錯(cuò)誤。
語法:
{
??$collStats:
????{
??????latencyStats: { histograms: <boolean> },
??????storageStats: {},
??????count: {}
????}
}
參數(shù)講解:
latencyStats:將延遲統(tǒng)計(jì)信息添加到返回文檔中。
latencyStats.histograms:如果為真,則向latencyStats中嵌入的文檔添加延遲直方圖信息。
storageStats:將存儲(chǔ)統(tǒng)計(jì)信息添加到返回文檔中。
count:將集合中的文檔總數(shù)添加到返回文檔中,計(jì)數(shù)基于集合的元數(shù)據(jù),該元數(shù)據(jù)為分片集群提供了快速但有時(shí)不準(zhǔn)確的計(jì)數(shù)。
注意點(diǎn):
對于副本集中的集合或集群中的非分片集合,$collStats輸出單個(gè)文檔。對于分片集合,$collStats為每個(gè)分片輸出一個(gè)文檔。輸出文檔包括以下字段
ns:請求的集合或視圖的名稱空間。
shard:輸出文檔對應(yīng)的切分的名稱。僅當(dāng)$collStats在分片集群上運(yùn)行時(shí)才出現(xiàn)。分片集合和非分片集合都將生成此字段。
host:生成輸出文檔的mongod進(jìn)程的主機(jī)名和端口。
localTime:MongoDB服務(wù)器上的當(dāng)前時(shí)間,自Unix時(shí)代以來以UTC毫秒表示。
latencyStats:與集合或視圖的請求延遲相關(guān)的統(tǒng)計(jì)信息集合。有關(guān)此文檔的詳細(xì)信息,請參閱latencyStats文檔。僅在指定latencyStats:{}選項(xiàng)時(shí)出現(xiàn)。
storageStats:與集合的存儲(chǔ)引擎相關(guān)的統(tǒng)計(jì)信息集合。有關(guān)此文檔的詳細(xì)信息,請參閱storageStats文檔。僅在指定storageStats:{}選項(xiàng)時(shí)出現(xiàn)。如果應(yīng)用于視圖,則返回錯(cuò)誤。
count:集合中文檔的總數(shù)。這個(gè)數(shù)據(jù)也可以在storageStats.count中獲得,計(jì)數(shù)基于集合的元數(shù)據(jù),該元數(shù)據(jù)為分片集群提供了快速但有時(shí)不準(zhǔn)確的計(jì)數(shù)。只在指定count:{}選項(xiàng)時(shí)出現(xiàn)。如果應(yīng)用于視圖,則返回錯(cuò)誤。
1.?示例
db.question.aggregate( [ { $collStats: { storageStats: {} } } ] )