2014-02-28 94 views
0

我正在嘗試爲我的下一個項目學習MongoDB。我在Windows 7機器上安裝了MongoDB。我能夠使用mongo.exe創建收集和檢索數據。我試圖使用官方的C#驅動來操縱集合,但是我的測試控制檯應用程序在嘗試連接到服務器時出現「深淵」(我猜)。無法從MongoDB數據庫中檢索集合

我已經寫了下面的代碼:

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(); 
    } 

控制檯應用程序停止工作就行server.Connect()。我已經把這條線只是爲了找到問題,我知道沒有必要明確地連接到服務器。如果我刪除了這一行,然後控制檯應用程序停止線的foreach工作(在用戶VAR用戶)

我也嘗試使用下面的代碼,但沒有成功獲得服務器:

var mongoClient = new MongoClient("mongodb://<host>:27017"); 
var server = mongoClient.GetServer(); 
+0

您是否可以確認MongoD在您啓動應用程序時正在運行? – WiredPrairie

+0

請不要包含關於問題標題中使用的語言的信息,除非在沒有它的情況下沒有意義。標籤用於此目的。 –

回答

-1

使用像你的最後一個例子這樣的:

var mongoClient = new MongoClient("mongodb://localhost"); 
var server = mongoClient.GetServer(); 

除非它不是在同一臺機器上或不標準的端口上運行

0

代碼爲perfe克拉!當你試圖通過C#驅動程序連接到MongoDB時,MongoDB的特質就是你必須首次接受連接。下次MongoDB會記住你最後的接受並繼續。

必須設置以消除這種情況,但我還沒有找到它。我會盡快更新。

快樂MangoDB學習。