【问题标题】:Show database in mongodb show it empty while I can acess and query data在 mongodb 中显示数据库显示为空,而我可以访问和查询数据
【发布时间】:2013-10-23 22:32:54
【问题描述】:

在命令行访问数据库时, 'show dbs' 列出了所有现有数据库,显示我想要访问的数据库为空

编辑: 永远不要使用数据库并运行 db.stats() 它会显示正确的数据大小。

show dbs 的输出:

db1(空)

db2(空)

db3 0.999755859375GB

db_5(空)

但我可以访问、查询、计数和显示存储在 db_5 中的数据。

有人能解释一下为什么显示为空吗? 我可以正确导出而不丢失数据吗?

编辑: 导出然后停止并重新启动 mongodb 后:数据库现在显示为完全为空,然后我无法选择计数或显示数据。

【问题讨论】:

  • db_5db.adminCommand("listDatabases");db.stats() 的输出是什么?
  • db.admin.Command for db_5 { "name" : "db_5", "sizeOnDisk" : 1, "empty" : false }, db.stats 很好 { "db" : "db_5 ","集合":7,"对象":476471,"avgObjSize":686.5640595125411,"dataSize":327127864,"storageSize":393261056,"numExtents":34,"indexes":5,"indexSize":155 “fileSize”:0,“nsSizeMB”:16,“dataFileVersion”:{“major”:4,“minor”:5},“ok”:1}

标签: mongodb show pymongo


【解决方案1】:

看来您必须更新 MongoDB Shell。

存在一个已知问题 (SERVER-15987),其中 listCollections 使用旧版本的 shell 时返回空。

执行mongo命令时,可以在第一行看到shell版本。

MongoDB shell version: 3.0.4

如果你有小于3.0 的东西,你应该更新你的shell。
在 Debian 中,可以使用 apt-get install mongodb-org-shell 重新安装它

source

【讨论】:

  • 我从来没有用高版本重现过这个问题。无论如何谢谢!
【解决方案2】:

就我而言,我在没有凭据的情况下访问 mongo。 所以将我的命令更改为

mongo --username mongouser --password mongopass

【讨论】:

  • 这就像一个魅力,在我输入 mongo 之前没有凭据并且什么都没有出现。
猜你喜欢
  • 1970-01-01
  • 2016-07-12
  • 2020-05-27
  • 2017-07-10
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多