c# - 在Docker中连接到mongodb

标签 c# mongodb docker

我正在尝试从控制台应用程序(Visual Studio C#)连接到在docker容器中运行的mongodb,但无法完成。
运行应用程序时没有出现任何错误,但是当我检查docker容器内的mongodb时,它没有显示应用程序插入的任何文档。

这是我尝试连接到mongodb的代码片段:

var client = new MongoClient("mongodb://127.0.0.1:27017");
var db = client.GetDatabase("test");
var collection = db.GetCollection<BsonDocument>("testColl");

var document = new BsonDocument {
    {"Name", "h" },
    {"Dep", "ADI" }
};

我认为在Docker容器中创建mongodb时出现了问题。.我只是简单地提取了mongo的最新镜像,然后执行以下操作:docker run --name myMongoTestDb -d mongo

最佳答案

这里可能有一些问题:

1)创建文档后,请确保在集合上调用Insert

collection.Insert(document)

2)确保使用-p参数将27017端口从容器暴露给本地主机
docker run --name myMongoTestDb -p 27017:27017 -d mongo

阅读更多:

暴露端口-https://github.com/wsargent/docker-cheat-sheet#exposing-ports
使用C#插入文档-https://mongodb-documentation.readthedocs.io/en/latest/ecosystem/tutorial/getting-started-with-csharp-driver.html#insert-a-document

关于c# - 在Docker中连接到mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52309284/

相关文章:

c# - Redis StackExchange 删除键

c# - PdfTextExtractor 中的 iTextSharp 错误?

linux - bash 脚本中的 docker 日志不起作用

docker - 有没有办法更新在Kubernetes中运行的Jenkins?

Docker buildkit 缓存位置/大小和 ID

c# - vNext 依赖注入(inject)通用接口(interface)

c# - Web 服务日期时间参数不接受英国格式 DD/MM/YYYY

node.js - 如何在 Mongoose 查询中使用 if 语句?

javascript - Mongoose map

mongodb - Golang mgo 获取空对象