2017-04-15 46 views
2

我正在通過mongoDB Driver Documentation Quick Tour第一次。特別是2.4版本。連接到mongodb唱C#快速瀏覽不創建數據庫或集合

我在192.168.1.50地址創建了一個新的mongodb實例,它似乎運行正常。

MongoDB的文檔給出了下面的例子:

var client = new MongoClient("mongodb://192.168.1.50:27017"); 
#It's ok if the database doesn't yet exist. It will be created upon first use 
var database = client.GetDatabase("testDB"); 
#It’s ok if the collection doesn’t yet exist. It will be created upon first use. 
var collection = database.GetCollection<BsonDocument>("testCollection"); 

然而,當我去我的服務器上,而我進入蒙戈控制檯

mongo 

我列出使用

數據庫
show dbs 

輸出僅爲

admin 0.000GB 
local 0.000GB 

還有什麼我應該做的,使這項工作?我在try/catch上沒有任何錯誤,而且它似乎運行良好。


故障排除

到目前爲止,我已經證實,MongoDB是使用以下運行:

netstat -plntu 

展會的mongod處於LISTEN狀態下運行27017。


我還會有興趣知道,如果有MongoDB服務器上的方式來查看實時連接,所以我可以看到,如果它實際上是成功連接。

回答

1

事實證明,一個方法我就如何設置多個bindIp的是不正確的發現。問題不在於C#。我找到了解決辦法here

在有史以來消失的情況下,這裏的當前設置,我不得不遵循多個IP的

編輯文件/etc/mongod.conf

裹逗號分隔用括號

bindIp = [127.0.0.1, 192.168.184.155, 96.88.169.145] 

我原來的代碼工作正常-Ips,我只是沒有對bindIp括號。

2

那麼問題是,你需要創建幾乎一個集合爲了堅持創建的數據庫(奇怪的權利?)我測試它與robomongo並以這種方式工作。

的問題是,GetCollection方法不創建目標集合,你可以用這個代碼嘗試:

static void Main(string[] args) 
    { 
     var client = new MongoClient("mongodb://192.168.1.50:27017"); 
     //# It's ok if the database doesn't yet exist. It will be created upon first use 
     var database = client.GetDatabase("test"); 
     //# It’s ok if the collection doesn’t yet exist. It will be created upon first use. 

     string targetCollection = "testCollection"; 
     bool alreadyExists = database.ListCollections().ToList().Any(x => x.GetElement("name").Value.ToString() == targetCollection); 

     if (!alreadyExists) 
     { 
      database.CreateCollection(targetCollection); 
     } 

     var collection = database.GetCollection<BsonDocument>(targetCollection); 

    } 
+0

這也不適合我。它掛在'''bool alreadyExists'''上,永遠不會返回。 – trueCamelType

+0

事實證明,我的錯誤是在MongoDB一側的配置。我原來的代碼有效,但你的代碼也是。感謝您的幫助 – trueCamelType

+0

謝謝這對我有用! – AndeeC