Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / /

$collStats

在此页面上

  • 语法
  • 字段
  • 输出
  • 示例
  • Errors

$collStats 返回给定集合的统计信息。 $collstats必须是聚合管道中的第一阶段。 有关更多信息,请参阅 $collStats 。 在Data Federation中, $collStats只能用于检索有关给定集合或视图的分区信息。

在 Atlas Data Federation 中, $collStats接受空文档。 它仅支持可选字段count ,如果指定了不支持的选项,则会返回错误。

db.<collection-name>|<view-name>.aggregate([{ "$collStats" : { "count" : {} } }])
字段
类型
说明
必要性

count

文档

将分区中的文档总数添加到返回文档中。

Optional

$collStats 为每个分区返回文档中的以下字段:

字段
类型
说明

count

数字

分区中的文档总数。 This is returned only if you specify the count option.

ns

字符串

当前collection或视图的命名空间,格式为[database].[collection|view]

partition

文档

有关分区的详细信息,如源、格式、大小和分区属性(如果有)。

partition.format

字符串

文件的格式。 对于云存储中的数据,值可以是任何支持的数据格式,对于Atlas 集群中的数据,值可以是 MONGO

partition.attributes

文档

path在云存储分区的 中定义的此分区的分区属性。空文档表示分区的数据源中没有分区属性。

partition.size

int

分区的大小。

partition.source

字符串

分区的源。 该值可以是以下之一:

  • 云存储中文件的路径。

  • Atlas 上分区的集群名称。

partition.version

字符串

Atlas 集群的 MongoDB 版本。 $collStats阶段仅为 Atlas 集群数据存储返回此字段。该值的格式如下:

<major-version-number>.<minor-version-number>.<patch-version-number>

例如:7.0.1

以下示例显示了 $collStats 语法,用于从云存储联合数据库实例存储中包含s3Db.abc 3文件的 集合中检索分区:

use s3Db
db.abc.aggregate([ {$collStats: {}} ])

上述命令会返回以下输出:

{ "ns" : "s3Db.abc", "partition" : { "format" : "JSON", "attributes" : { "year" : NumberLong(2018) }, "size" : 139, "source" : "s3://my-bucket/s3Db/abc/2018/1.json?delimiter=%2F&region=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&region=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&region=us-east-1" } }

以下示例显示了用于从名为mySandboxCluster的Atlas 集群的atlasDb.sampleColl集合中检索分区的$collStats语法:

use atlasDb
db.sampleColl.aggregate([ {$collStats: {}} ])

上述命令会返回以下输出:

{ "ns" : "atlasDb.sampleColl", "partition" : { "format" : "MONGO", "attributes" : { }, "size" : 94362191, "source" : "mySandboxCluster" } }

以下示例显示了用于检索分区中文档总数的$collStats语法。

use s3Db
db.abc.aggregate([ {$collStats: {"count" : {} }} ])

上述命令会返回以下输出:

{ "ns" : "atlasDb.sampleColl", "partition" : { "format" : "MONGO", "attributes" : { }, "size" : 94362191, "source" : "mySandboxCluster" }, "count" : 23530}

如果collStats参数文档包含 MongoDB Server 允许但 Atlas Data Federation 不允许的任何选项,则会返回类似以下内容的错误。

{
"ok" : 0,
"errmsg" : "$collStats param 'latencyStats' is not valid for Data Federation, correlationID = 1622929884a47d16f4888a1c",
"code" : 9,
"codeName" : "FailedToParse"
}

后退

聚合管道