我正在通過複數視域課程學習MongoDB中的一些知識。這是'路徑'的基本課程之一,它似乎已經在2.0之前。因此,我在理解導師所經歷的一些主題方面遇到了一些麻煩。在C中查詢基於BsonId的MongoDb數據#
我希望看到有人可以澄清如何Find
任何對象基於他們的BsonID
?
這是我的目標:
public class Patient
{
[BsonElement("_id")]
[BsonId]
public string Name { get; set; }
public ICollection<Ailment> Ailments { get; set; }
public ICollection<Medication> Medications { get; set; }
}
這是我怎樣,我想查詢它:
public HttpResponseMessage Get(int id)
{
var patient = _patients.Find(pat => pat._id == id).ToList();
if(patient == null)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Patient Not Found..");
}
return Request.CreateResponse(HttpStatusCode.OK, patient);
}
這句法不允許我建立這個項目,因爲」不是個t名爲_id
的房產。我也嘗試了一個實際的屬性ID,但是這似乎在構建時會產生某種問題(很可能因爲我已經有一個ID,由BsonID創建)。
如果以前有人問過這個問題,我真的很抱歉,但我真的無法找到任何關於這個問題的幫助。似乎應該有很多資源(例如,我們的新手應該能夠獲得一些良好的來源,當搜索的東西,如「c#查詢mongodb發現BsonId」)。
我完全理解這是否會被選中,但如果某人有一段時間可以幫助我在這裏,我真的很喜歡它。
我認爲這[已回答](https://stackoverflow.com/questions/ 6063219 /如何管理的-ID-場時-使用-POCO與 - mongodb的-C-銳驅動程序)。 –
糾正我,如果我錯了,但不是'ObjectId'棄用?至少當我試圖使用它而不是'BsonId'時,它拋出了一個錯誤,指出在'BsonTypes'(或類似的東西)中沒有這個名字的屬性。 – geostocker
ObjectId是一種類型(如int或字符串),非常適合Mongo中的Id屬性...雖然在我們最近的項目中,我們已經使用Guid而不是ObjectId,因爲我們不想將所有模型緊密結合到Mongo(如果我們想更改持久層)。 BsonId是如果您不想使用默認的'public ObjectId Id {get;}來裝飾您的Id字段的屬性(BsonIdAttribute)組; ''。 –