$collStats Devuelve estadísticas para una colección determinada. $collstats debe ser la primera etapa en la canalización de agregación. Para obtener más información, consulte $collStats. En Data Federation, $collStats solo se puede usar para recuperar información sobre las particiones de una colección o vista determinada.
Sintaxis
En Atlas Data Federation, $collStats acepta un documento vacío. Sólo admite el campo opcional count y devuelve un error si se especifica una opción no admitida.
db.<collection-name>|<view-name>.aggregate([{ "$collStats" : { "count" : {} } }])
Campos
Campo | tipo | Descripción | Necesidad |
|---|---|---|---|
| Documento | Agrega el número total de documentos en las particiones al documento de retorno. | Opcional |
Salida
$collStats devuelve los siguientes campos en el documento de cada partición:
Campo | Tipo | Descripción | |
|---|---|---|---|
| Número | El número total de documentos en la partición. Esto sólo se retorna si especificas la opción | |
| string | El namespace de la colección o vista actual en el formato | |
| Documento | Los detalles sobre la partición, como el origen, el formato, el tamaño y cualquier atributo de partición, si lo hubiera. | |
| string | El formato del archivo. El valor puede ser cualquiera de los Formatos de datos compatibles para los datos en un almacenar en la nube o | |
| Documento | Los atributos de la partición para esta partición se definen en el | |
| Int | El tamaño de la partición. | |
| string | La fuente para la partición. El valor puede ser uno de los siguientes:
| |
| string | La versión de MongoDB del clúster de Atlas. La etapa Por ejemplo, |
Ejemplos
El siguiente ejemplo muestra la sintaxis de $collStats para recuperar las particiones de una colección s3Db.abc con 3 archivos en un almacén de instancias federadas de base de datos de almacenamiento en la nube:
use s3Db db.abc.aggregate([ {$collStats: {}} ])
El comando anterior devuelve la siguiente salida:
{ "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" } }
El siguiente ejemplo muestra la sintaxis de $collStats para recuperar las particiones de la colección atlasDb.sampleColl en el clúster Atlas denominado mySandboxCluster:
use atlasDb db.sampleColl.aggregate([ {$collStats: {}} ])
El comando anterior devuelve la siguiente salida:
{ "ns" : "atlasDb.sampleColl", "partition" : { "format" : "MONGO", "attributes" : { }, "size" : 94362191, "source" : "mySandboxCluster" } }
El siguiente ejemplo muestra la sintaxis de $collStats para recuperar el número total de documentos en las particiones.
use s3Db db.abc.aggregate([ {$collStats: {"count" : {} }} ])
El comando anterior devuelve la siguiente salida:
{ "ns" : "atlasDb.sampleColl", "partition" : { "format" : "MONGO", "attributes" : { }, "size" : 94362191, "source" : "mySandboxCluster" }, "count" : 23530}
Errors
Se devuelve un error similar al siguiente si el documento de argumento collStats contiene alguna de las opciones permitidas por el servidor MongoDB, pero no por Atlas Data Federation.
{ "ok" : 0, "errmsg" : "$collStats param 'latencyStats' is not valid for Data Federation, correlationID = 1622929884a47d16f4888a1c", "code" : 9, "codeName" : "FailedToParse" }