参考 > 参考 > mongo Shell方法 > 数据库方法 > db.getCollectionInfos()
db.
getCollectionInfos
(filter,nameOnly,authorizedCollections )¶返回包含当前数据库的集合或视图信息(例如名称和选项)的文档数组。结果取决于用户的权限。有关详细信息,请参见“ 必需访问权限”。
该db.getCollectionInfos()
辅助包装的
listCollections
命令。
该db.getCollectionInfos()
方法具有以下可选参数:
参数 | 类型 | 描述 |
---|---|---|
filter |
文献 | 可选的。查询表达式以过滤集合列表。 您可以在返回的任何字段上指定查询表达式 |
nameOnly |
布尔值 | 可选的。一个标志,指示命令是否应仅返回集合/视图名称并键入或返回名称和其他信息。 仅返回名称和类型( 默认值为 注意 当 版本4.0中的新功能。 |
authorizedCollections |
布尔值 | 可选的。一个标志,当设置为 当 默认值为 对于 不使用时,此选项无效。也就是说,强制执行访问控制时,用户必须具有运行命令所需的特权。否则,用户无权运行该命令。 版本4.0中的新功能。 |
在版本3.2中更改。
MongoDB 3.2添加了对文档验证的支持。db.getCollectionInfos()
在options
文档中包含文档验证信息。
db.getCollectionInfos()
不会返回validationLevel
,validationAction
除非明确设置它们。
由于db.getCollectionInfos()
是的包装
listCollections
,用户必须具有与listCollections
实施访问控制时相同的特权
。
要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
从MongoDB 4.2开始,如果发出db.getCollectionInfos()
断开连接的客户端在操作完成之前断开连接,则MongoDB将标记db.getCollectionInfos()
为终止(即killOp
在操作上)。
以下返回example
数据库中所有集合的
信息:
该方法返回包含集合信息的文档数组:
要请求特定集合的集合信息,请在调用方法时指定集合名称,如下所示:
该方法返回一个包含单个文档的数组,该文档详细说明数据库中employees
集合
的集合信息example
。
您可以在所返回的任何字段上指定过滤器
getCollectionInfos
。
例如,下面的命令返回的所有集合的信息,example
其中数据库info.readOnly
是
true
:
该命令返回以下内容: