listCollections
¶检索有关数据库中集合和视图的信息,即名称和选项。具体地说,该命令返回一个文档,该文档包含用于创建集合信息光标的信息。该mongo
外壳提供了db.getCollectionInfos()
与
db.getCollectionNames()
辅助方法。
该命令具有以下形式:
该listCollections
命令可以采用以下可选字段:
领域 | 类型 | 描述 |
---|---|---|
filter |
文献 | 可选的。查询表达式以过滤集合列表。 |
nameOnly |
布尔值 | 可选的。一个标志,指示命令是否应仅返回集合/视图名称并键入或返回名称和其他信息。 仅返回名称和类型( 默认值为 注意 当 版本4.0中的新功能。 |
authorizedCollections |
布尔值 | 可选的。一个标志,当设置为 当 默认值为 对于 不使用时,此选项无效。也就是说,强制执行访问控制时,用户必须具有运行命令所需的特权。否则,用户无权运行该命令。 版本4.0中的新功能。 |
使用过滤器限制的结果listCollections
。您可以在结果集中返回的filter
任何字段上指定a listCollections
。
在版本4.0中更改。
该listCollection
命令在数据库上采用“意图共享”锁。在以前的版本中,该命令对数据库使用共享锁。
除非nameOnly
指定了该选项,否则该命令还将依次对每个集合进行一个Intent Shared锁定,同时将Intent Shared锁定保持在数据库上。
从MongoDB 4.2开始,如果发出listCollections
断开连接的客户端在操作完成之前断开连接,则MongoDB将标记listCollections
为终止(即killOp
在操作上)。
要listCollections
在强制执行访问控制时运行,通常,用户必须具有授予listCollections
数据库操作权限的特权
。例如,以下特权授予用户db.getCollectionInfos()
针对test
数据库运行的权限
:
内置角色read
提供了listCollection
针对特定数据库运行的特权
。
在4.0版本开始,但是,用户没有按规定的权限可以运行的命令都 authorizedCollections
和
nameOnly
选项设置true
。在这种情况下,该命令仅返回用户具有特权的集合的名称和类型。
例如,考虑具有仅授予以下特权的角色的用户:
如果该命令包括用户可以通过命令都
authorizedCollections
和nameOnly
选项设置为true
(具有或不具有filter
选项):
该操作返回foo
集合的名称和类型。
但是,以下操作(带有或不带有该filter
选项)对于没有所需访问权限的用户来说是错误的:
show collections
¶从mongo
Shell的4.0版本开始,等效于:show
collections
show collections
show collections
当4.0版mongo
外壳连接到较早版本的MongoDB部署不支持
authorizedCollections
和nameOnly
选项,
listCollection
。show
collections
authenticatedUserPrivileges
connectionStatus
listCollections.
cursor
¶一个文档,该文档包含用于创建包含集合名称和选项的文档的游标的信息。游标信息包括游标ID,命令的完整名称空间以及第一批结果。批处理输出中的每个文档都包含以下字段:
领域 | 类型 | 描述 |
---|---|---|
名称 | 串 | 集合的名称。 |
类型 | 串 | 数据存储的类型。返回collection 的
收藏
和view 对意见。 |
选项 | 文献 | 收集选项。 这些选项直接对应于中的可用选项
|
信息 | 文献 | 列出与集合相关的以下字段:
|
idIndex | 文献 | 提供有关_id 集合索引的信息。 |
listCollections.
ok
¶命令的返回值。值1
表示成功。