$collStats
$collStats
retorna estatísticas para uma determinada coleção. $collstats
deve ser o primeiro estágio no pipeline de agregação . Para mais informações, consulte $collStats. No Data Federation, o $collStats
só pode ser usado para recuperar informações sobre as partições de uma determinada coleta ou visualização.
Sintaxe
No Atlas Data Federation, $collStats aceita um documento vazio. Ele suporta somente o campo opcional count
e retorna um erro se uma opção não suportada for especificada.
db.<collection-name>|<view-name>.aggregate([{ "$collStats" : { "count" : {} } }])
Campos
Campo | type | Descrição | necessidade |
---|---|---|---|
count | documento | Adiciona o número total de documentos nas partições ao documento de retorno. | Opcional |
Saída
$collStats
retorna os seguintes campos no documento para cada partição:
Campo | Tipo | Descrição | |
---|---|---|---|
count | número | O número total de documentos na partição. Isso será retornado somente se você especificar a opção count . | |
ns | string | O namespace da current collection ou visualização no formato [database].[collection|view] . | |
partition | documento | Os detalhes sobre a partição, como a origem, o formato, o tamanho e osatributos de partição , se houver. | |
partition.format | string | O formato do arquivo. O valor pode ser qualquer um dos Formatos de Dados Suportados para dados em um MONGO armazenamento na nuvem ou para dados no Atlas cluster. | |
partition.attributes | documento | ||
partition.size | int | O tamanho da partição. | |
partition.source | string | A origem da partição. O valor pode ser um dos seguintes:
| |
partition.version | string | Versão do MongoDB do cluster do Atlas. O estágio
Por exemplo, |
Exemplos
O exemplo a seguir mostra a sintaxe $collStats para recuperar as partições de uma s3Db.abc
coleção com 3 arquivos em um armazenamento de instância do banco de dados federado no armazenamento na nuvem:
use s3Db db.abc.aggregate([ {$collStats: {}} ])
O comando anterior retorna a seguinte saída:
{ "ns" : "s3Db.abc", "partition" : { "format" : "JSON", "attributes" : { "year" : NumberLong(2018) }, "size" : 139, "source" : "s3://my-bucket/s3Db/abc/2018/1.json?delimiter=%2F®ion=us-east-1" } } { "ns" : "s3Db.abc", "partition" : { "format" : "JSON", "attributes" : { "year" : NumberLong(2017) }, "size" : 124, "source" : "s3://my-bucket/s3Db/abc/2017/1.json?delimiter=%2F®ion=us-east-1" } } { "ns" : "s3Db.abc", "partition" : { "format" : "JSON", "attributes" : { "year" : NumberLong(2017) }, "size" : 130, "source" : "s3://my-bucket/s3Db/abc/2017/2.json?delimiter=%2F®ion=us-east-1" } }
O exemplo seguinte mostra a sintaxe $collStats para recuperar as partições da coleção atlasDb.sampleColl
no Atlas cluster denominado mySandboxCluster
:
use atlasDb db.sampleColl.aggregate([ {$collStats: {}} ])
O comando anterior retorna a seguinte saída:
{ "ns" : "atlasDb.sampleColl", "partition" : { "format" : "MONGO", "attributes" : { }, "size" : 94362191, "source" : "mySandboxCluster" } }
O exemplo a seguir mostra a sintaxe $collStats para recuperar o número total de documentos nas partições.
use s3Db db.abc.aggregate([ {$collStats: {"count" : {} }} ])
O comando anterior retorna a seguinte saída:
{ "ns" : "atlasDb.sampleColl", "partition" : { "format" : "MONGO", "attributes" : { }, "size" : 94362191, "source" : "mySandboxCluster" }, "count" : 23530}
Errors
Um erro semelhante ao seguinte será retornado se o documento de argumento collStats contiver qualquer uma das opções permitidas pelo servidor MongoDB, mas não pelo Atlas Data Federation.
{ "ok" : 0, "errmsg" : "$collStats param 'latencyStats' is not valid for Data Federation, correlationID = 1622929884a47d16f4888a1c", "code" : 9, "codeName" : "FailedToParse" }