C# 从MongoDB数据库检索集合时遇到问题
我正在为下一个项目学习MongoDB。我已经在我的Windows7机器上安装了MongoDB。我能够使用mongo.exe创建集合并检索数据。我试图使用官方的C驱动程序来操纵集合,但我的测试控制台应用程序在尝试连接到服务器时陷入了深渊 我编写了以下代码:C# 从MongoDB数据库检索集合时遇到问题,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我正在为下一个项目学习MongoDB。我已经在我的Windows7机器上安装了MongoDB。我能够使用mongo.exe创建集合并检索数据。我试图使用官方的C驱动程序来操纵集合,但我的测试控制台应用程序在尝试连接到服务器时陷入了深渊 我编写了以下代码: static void Main(string[] args) { try { // Create server settings to pass connection stri
static void Main(string[] args)
{
try
{
// Create server settings to pass connection string, timeout, etc.
var settings = new MongoServerSettings();
settings.Server = new MongoServerAddress("localhost", 27017);
// Create server object to communicate with our server
var server = new MongoServer(settings);
server.Connect(TimeSpan.FromMilliseconds(1000));
// Get our database instance to reach collections and data
var message = string.Empty;
server.IsDatabaseNameValid("test", out message);
Console.WriteLine(message);
var database = server.GetDatabase("test");
var users = database.GetCollection("users").FindAll();
foreach (var user in users)
{
Console.WriteLine("User found");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.InnerException);
Console.WriteLine(ex.StackTrace);
}
Console.ReadLine();
}
控制台应用程序停止在line server.Connect上工作。我写这行只是为了发现问题,我知道并没有必要显式地连接到服务器。若我删除该行,那个么控制台应用程序将停止在用户中的foreach var user行上工作
我还尝试使用以下代码获取服务器,但没有成功:
var mongoClient = new MongoClient("mongodb://<host>:27017");
var server = mongoClient.GetServer();
使用上一个示例,如下所示:
var mongoClient = new MongoClient("mongodb://localhost");
var server = mongoClient.GetServer();
除非它不是在同一台机器上运行或不是在标准端口上运行,否则代码是完美的!MongoDB的特点是,当您试图通过C驱动程序连接到MongoDB时,您必须第一次接受连接。下一次MongoDB将记住您最后一次接受并继续前进 必须设置删除此条件,但我尚未找到它。我会尽快更新
学习愉快 您能否确认在启动应用程序时MongoD正在运行?请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标签就是为了这个目的。