使用凭据连接到 C# 中的 MongoDB
Connect to MongoDB in C# with Credentials
您好我正在尝试使用 Visual Studio 2013 在 c# 中使用最新的官方 MongoDB 支持 MongoDB 的驱动程序连接到我的遥控器 MongoDB。我遇到的问题是我无法插入集合,甚至无法建立连接。
我正在使用以下代码创建 mongo 凭据(数据库名称、用户、密码)
mongoCredential = MongoCredential.CreateMongoCRCredential("MongoDB",
"xxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxx");
设置凭据列表
mongoClientSettings = new MongoClientSettings
{
Credentials = new[] { mongoCredential },
Server = new MongoServerAddress("xx.xxx.xx.xxx", 38180)
};
将我们的 mongo 服务器凭据添加到我们的客户端
mongoClient = new MongoClient(mongoClientSettings);
然后连接:
private void button1_Click(object sender, EventArgs e)
{
// Connect to database
mongoDatabase = mongoClient.GetDatabase("MongoDB");
}
现在我尝试插入一个集合:
private void button4_Click(object sender, EventArgs e)
{
// Create a collection
mongoDatabase.CreateCollectionAsync("aCollection");
}
这个方法对我们不起作用,因为当我从提示符 运行 mongo 并使用凭据连接到远程数据库然后 运行 db.stats() 它 returns 一个空数据库:
> db.stats()
{
"db" : "MongoDB",
"collections" : 0,
"objects" : 0,
"avgObjSize" : 0,
"dataSize" : 0,
"storageSize" : 0,
"numExtents" : 0,
"indexes" : 0,
"indexSize" : 0,
"fileSize" : 0,
"ok" : 1
}
>
MongoDB 不是我的事,如果我正在绕圈子,这里的任何帮助将不胜感激?
有可能(很可能?)CreateCollectionAsync 抛出异常但您没有观察到该异常。
与 C# 中的所有异步方法一样,立即创建 CollectionAsync returns,实际工作在后台异步完成。
你应该"await"这个方法。当您使用 await 时,调用任务会挂起,直到被调用任务完成,此时等待 returns 被调用任务的结果,或者如果被调用任务出错,则重新抛出异常。
您好我正在尝试使用 Visual Studio 2013 在 c# 中使用最新的官方 MongoDB 支持 MongoDB 的驱动程序连接到我的遥控器 MongoDB。我遇到的问题是我无法插入集合,甚至无法建立连接。
我正在使用以下代码创建 mongo 凭据(数据库名称、用户、密码)
mongoCredential = MongoCredential.CreateMongoCRCredential("MongoDB",
"xxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxx");
设置凭据列表
mongoClientSettings = new MongoClientSettings
{
Credentials = new[] { mongoCredential },
Server = new MongoServerAddress("xx.xxx.xx.xxx", 38180)
};
将我们的 mongo 服务器凭据添加到我们的客户端
mongoClient = new MongoClient(mongoClientSettings);
然后连接:
private void button1_Click(object sender, EventArgs e)
{
// Connect to database
mongoDatabase = mongoClient.GetDatabase("MongoDB");
}
现在我尝试插入一个集合:
private void button4_Click(object sender, EventArgs e)
{
// Create a collection
mongoDatabase.CreateCollectionAsync("aCollection");
}
这个方法对我们不起作用,因为当我从提示符 运行 mongo 并使用凭据连接到远程数据库然后 运行 db.stats() 它 returns 一个空数据库:
> db.stats()
{
"db" : "MongoDB",
"collections" : 0,
"objects" : 0,
"avgObjSize" : 0,
"dataSize" : 0,
"storageSize" : 0,
"numExtents" : 0,
"indexes" : 0,
"indexSize" : 0,
"fileSize" : 0,
"ok" : 1
}
>
MongoDB 不是我的事,如果我正在绕圈子,这里的任何帮助将不胜感激?
有可能(很可能?)CreateCollectionAsync 抛出异常但您没有观察到该异常。
与 C# 中的所有异步方法一样,立即创建 CollectionAsync returns,实际工作在后台异步完成。
你应该"await"这个方法。当您使用 await 时,调用任务会挂起,直到被调用任务完成,此时等待 returns 被调用任务的结果,或者如果被调用任务出错,则重新抛出异常。