【发布时间】:2019-06-10 22:23:22
【问题描述】:
我在这个博客之后设置了 MongoDB docker 容器: https://medium.com/@kristaps.strals/docker-mongodb-net-core-a-good-time-e21f1acb4b7b
当我运行 .net core 应用程序时,保存一个 todo,我设法查询它,似乎一切正常(创建了 todo 集合,创建了 db,保存了 todo)。但是,当我使用“docker exec -it mongodb bash”访问 mongo db 容器并尝试使用“show dbs”获取 dbs 时,它会检索空列表。此外,这个 docker compose 会启动 mongo express 容器,该容器也没有列出新的数据库和集合。您知道可能是什么问题吗?
干杯
【问题讨论】:
-
你是如何连接到 mongodb 的?是否为 mongod 实例启用了身份验证?如果是,认证成功是否已满?尝试运行
db.adminCommand( { listDatabases: 1 } ) -
根据博客,认证是开启的,所以你应该使用用户名和密码来连接mongodb。来自 .net 核心应用程序的写入可能不成功,这可能是您在 mongodb 中看不到任何结果的原因。
-
@Mani 我现在尝试删除容器并在没有身份验证的情况下重新启动它们,它是相同的,写入仍然成功,因为从集合中返回所有项目的端点正确返回它们
-
看起来 api 代码有问题,我停止了所有 docker 容器,它仍然设法保存和检索项目......我不知道这里有什么魔力,它们没有存储在内存,因为我也尝试重新启动 api
-
您是否在本地机器上运行任何其他 mongodb 实例?