【问题标题】:Mongodb not listing collections when connecting remotely from CentOS从 CentOS 远程连接时,Mongodb 未列出集合
【发布时间】:2016-12-08 19:17:41
【问题描述】:

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

只是好奇为什么会发生这种情况.. 任何 cmets?

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

谢谢

_Vamsi

【问题讨论】:

    标签: mongodb windows-10 centos6 remote-connection


    【解决方案1】:

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

    > use desiredDatabase
    > show collections
    

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

    要获取计数,您可以使用返回数组的getCollectionNames 函数,您可以从中获取长度。

    > db.getCollectionNames().length
    

    【讨论】:

    • 谢谢洛根。当然,我使用的是正确的数据库。第二条信息很好。非常感谢。
    • 如果您从终端创建集合,它会显示吗?例如。 db.collection.insert({a:1}) 然后db.getCollectionNames() 显示collection?
    • 我可以添加收藏,没问题。但是 'show collections' 和 db.getCollectionNames() 都显示为空白。但是,我可以很好地查询新集合。很奇怪。
    • 一定是因为您登录的用户没有适当的权限。我会更新答案。
    • Logan:现在我可以访问这些收藏了。我当时的预感是,可能是我使用了默认的test 集合,但实际上并没有切换到所需的集合。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 2018-03-12
    • 2019-08-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多