2017-06-22 109 views
0

我有一個可用的Mongo和.Net Core應用程序,但仍然需要通過C#訪問mongo數據庫。我只是通過嘗試在program.cs文件中進行連接來測試這一點。在頂部,我有:在.Net中使用Mongo核心web api

using MongoDB.Driver; 
using MongoDB.Driver.Core; 
using MongoDB.Bson; 

當我運行:

var mongo = new MongoClient("mongodb://localhost:27017"); 
var db = mongo.GetDatabase("cvpz"); 
mongo.getCollection("people"); 

我得到這個錯誤:

Program.cs(16,19): error CS1061: 'MongoClient' does not contain a definition for 'getCollection' and no extension method 'getCollection' accepting a first argument of type 'MongoClient' could be found (are you missing a using directive or an assembly reference?) [/src/src/Identity.api/Identity.api.csproj] 

現在,我可以通過命令行通過「蒙戈本地主機訪問DB/cvpz」。順便說一句,我使用Ubuntu來運行.Net Core。

當我運行createCollection()時,我得到一個類似的錯誤。我如何使用C#與Mongo交互?

最後一件事,我應該有所有必需的包,我有這些在我的.csproj:

<PackageReference Include="MongoDB.Driver" Version="2.3.0" /> 
<PackageReference Include="MongoDB.Driver.Core" Version="2.3.0" /> 
<PackageReference Include="MongoDB.Bson" Version="2.3.0" /> 

非常感謝你們!

回答

2

兩件事。 'GetCollection'應該有一個大寫字母G.它還需要一個通用參數來指示存儲的文檔類型。對於您例如:

var mongo = new MongoClient("mongodb://localhost:27017"); 
var db = mongo.GetDatabase("cvpz"); 
var coll = mongo.GetCollection<People>("people"); 

參考:IMongoDatabase.GetCollection

+0

我是否需要將其添加到該文件的.csproj?或者說是'使用IMongoDatabase.GetCollection'?另外,我是否需要爲每個要使用的命令獲取使用語句? – Coder

+0

@Joel將什麼添加到csproj文件?從這個問題和你在15個小時前問的問題,你有正確的參考。 「參考:IMongoDatabase.GetCollection」是文檔的鏈接。 –

+0

哈哈抱歉,一直在盯着電腦屏幕。謝謝你的幫助! :) – Coder