使用$listSampledQueries
可以返回指定集合或所有集合的采样查询。analyzeShardKey
命令使用采样查询来计算分片密钥的读写分布指标。
语法
js
{
$listSampledQueries: { namespace: <namespace> }
}
使用
如果namespace
参数为某个集合,则列出该集合的采样查询,如果不指定namespace
参数,则列出所有集合的采样查询。
如果在集群上使用时,需要具备clusterMonitor
角色权限。
举例
列出全部集合的采样查询
下面的聚合操作列出了副本集中所有集合的所有采样查询:
js
db.aggregate( [ { $listSampledQueries: { } } ] )
列出指定集合的采样查询
下面的聚合操作列出了社交数据库中帖子集合的所有抽样查询:
js
db.aggregate( [ { $listSampledQueries: { namespace: "social.post" } } ] )
输出结果
读取和写入查询的输出字段不同。
读查询
js
{
_id: <uuid>,
ns: "<database>.<collection>",
collectionUuid: <collUUID>,
cmdName: <find|aggregate|count|distinct>,
cmd: {
filter: <object>,
collation: <object>,
let: <object>
},
expireAt: <date>
}
字段说明:
字段 | 类型 | 说明 |
---|---|---|
_id |
UUID | 查询的采样ID |
ns |
string | 样本集合的命名空间 |
collectionUuid |
UUID | 采样集合的ID |
cmdName |
string | 采样命令的名称,可以为:"find", "aggregate", "count", "distinct" |
cmd.filter |
object | 命令运行时使用的筛选器(如果适用) |
cmd.collation |
object | 命令运行时的校对(如果适用) |
cmd.let |
object | 命令运行时的自定义变量(如果适用) |
expireAt |
date | 样本过期日期 |
写查询
js
{
_id: <uuid>,
ns: "<database>.<collection>",
collectionUuid: <collUUID>,
cmdName: <update|delete|findAndModify>,
cmd: <object>,
expireAt: <date>
}
字段说明:
字段 | 类型 | 说明 |
---|---|---|
_id |
UUID | 查询的采样ID |
ns |
string | 样本集合的命名空间 |
collectionUuid |
UUID | 采样集合的ID |
cmdName |
string | 采样命令的名称,可以为:"update", "delete", "findAndModify" |
cmd |
object | 命令对象 |
expireAt |
date | 样本过期日期 |