我使用MongoDB作为我的数据存储,版本v3.4.1。我正在使用mongo的docker镜像,像这样运行它:
docker run -d -p 27017:27017 -v /home/rancher/data:/data/db --name mongodb mongo:latest
之后我创建了许多数据库和集合。一个多月没事了;但现在我无法在数据库中找到任何集合。列出集合的此命令显示一个空列表:show dbs
。或者,如果我执行use mydb
,则show collections
不会显示任何内容。
这些是/ home / rancher / data文件夹中的数据:
收集-O--4220404477553112134 .wt
收集-0-1041804628168690390.w牛逼
收集,2--4220404477553112134.wt
收集,2-1041804628168690390.wt
diagnostic.data
指数1--4220404477553112134.wt
指数1-1041804628168690390.wt
指数3--4220404477553112134.wt
指数3-1041804628168690390.wt
指数4-1041804628168690390.wt
杂志
_mdb_catalog.wt
mongod.lock
sizeStorer.wt
storage.bson
WiredTiger
WiredTiger.lock
WiredTiger.turtle
WiredTiger.wt
WiredTigerLAS.wt
有谁可以告诉我为什么集合在mongo DB中不持久?
答案 0 :(得分:1)
我也面临同样的问题。这是我找到的解决方案。请检查您的mongodb端口是否对网络开放。如果是这样限制它到服务器。
答案 1 :(得分:0)
您可能遇到mongo:latest
标记的问题以及mongodb如何更改用于数据文件的默认驱动程序。
使用任何图像的:latest
标记是个坏主意,因为图像之间的事情会发生变化,这样的问题就会发生。
切换到之前的版本,如3.2,看看它是否找到了数据
docker run -d -p 27017:27017 -v /home/rancher/data:/data/db --name mongodb mongo:3.2.12