【问题标题】:How do I access MongoDB data?如何访问 MongoDB 数据?
【发布时间】:2018-09-15 05:53:17
【问题描述】:

我正在将网站和 Mongo 数据库移动到新服务器。
网站看不到数据。
Mongo 在同一台服务器上安装并运行。
Shell 和 server 都是 3.6.3

Mongo shell 看到数据库。
从外壳,

dbs 返回数据库名称。
使用 dbname 似乎有效。
db.getCollectionNames() 返回一个合理的集合名称。说 ["myCollection"]

.

db.getCollection("myColection").getIndexes() 返回
[ { “v”:2, “钥匙” : { “_id”:1 }, "名称" : "id", “ns”:“myDB.myCollection” } ]

但在那之后,我无法再进一步了。

db.myCollection.find() 和
db.getCollection("myCollection").find() 都没有返回任何内容。

日志中的所有内容看起来都是正确的,没有错误。

这能告诉我们什么吗?

【问题讨论】:

  • version()db.version() 在你的mongo shell 中的结果是什么?一种可能是您使用的 shell 版本比您的 MongoDB 服务器版本旧得多。
  • @Stennie 好问题。应该包含版本。
  • @Stennie 我认为你在做某事。数据可能是使用旧的存储引擎构建的。 WiredTiger 比旧安装更新。所以它不会使用 WiredTiger。
  • 如果您的 mongo shell 版本与服务器版本匹配(并且两者都是 3.6.3),则应该消除问题出在尚未针对 MongoDB 更新的旧 shell 的可能性3.0+ 存储引擎 API(类似的展示)。您确定将数据恢复到新服务器上的正确数据库吗? db.myCollection.stats() 是否有预期的 countsize 文档?
  • @Stennie Stats 看起来是空的。感谢您的提示。

标签: mongodb windows-server-2016


【解决方案1】:

使用下方备份

Mongodump --out <directory>

及以下恢复

mongorestore <collectionName><path to the backup>

【讨论】:

    【解决方案2】:

    Mongo 的一个特点是您可以通过提及它来创建数据库或集合。
    原来有人试图导入数据但失败了。因此,当我查看“show dbs”和“getCollectionNames”时,它看起来像是在工作。
    我在数据库目录中看到的文件是导出文件,实际上并没有导入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2019-01-22
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多