Mongodb 从 CentOS 远程连接时不列出集合

Mongodb not listing collections when connecting remotely from CentOS

Mongo 服务器:Windows 10(主机) 客户端:CentOS 6.2,windows 10 主机上的虚拟机虚拟机。这实际上是一个cloudera quick start vm。 问题: mongodb 通过终端连接到远程服务器(从 CentOS 到 Windows),可以很好地列出数据库,但是 'show collections' 只是 returns 空白。也就是说,这些集合是可访问的,因为我可以查询任何集合,而且计数也给我正确的结果。 另一方面,我已从 IntelliJ 连接到同一个 mongo 服务器,它显示所有集合都很好。

只是好奇为什么会这样。有什么意见吗?

旁注:是否有 mongodb 命令来计算数据库中集合的数量?

谢谢

_Vamsi

确保您使用的是要为其显示集合的数据库。您可能正在使用没有任何集合的数据库。

> use desiredDatabase
> show collections

如果列表仍然为空,请尝试使用管理员用户帐户登录。用户需要能够执行 listCollections 操作。 dbAdmin 角色包括 listCollections 操作。

要获取计数,您可以使用 getCollectionNames 函数,其中 returns 一个数组,您可以从中获取长度。

> db.getCollectionNames().length