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
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