[英]Deserialize Mongo BSON array of location coordinates to custom C# class
[英]C# class to BSON roundtrip
我試圖使用MongoDB來存儲我在應用程序中存在的某些類。
我使用的代碼是
string json = JsonConvert.SerializeObject(item);
BsonDocument document = BsonDocument.Parse(json);
...
await collection.InsertOneAsync(document);
這似乎工作正常。 當我從MongoDB中檢索文檔時,會得到一個BsonDocument,其中添加了“ _id”屬性。
如何返回原始類的實例(不具有_id屬性)
MongoDB自動添加對象ID(_id)屬性作為主鍵。 在您向MongoDB中進行任何形式的插入時都會發生這種情況(無論您導入JSON,BSON,CSV還是其他方式)
http://docs.mongodb.org/manual/reference/object-id/
如果要在C#應用程序中解決此問題,一種選擇是從MongoDB導出到CSV,然后使用一種工具將CSV導入JSON,同時有選擇地避免使用_id。 但是,這似乎有點復雜。
也許您可以只保留_id屬性並將其設置為原始C#類中的可選參數? 您能解釋為什么_id參數存在是一個問題嗎?
從數據庫中讀取_id字段后,還可以從其刪除BidDocument:
var document = collection.Find(new BsonDocument()).FirstAsync();
document.Remove("_id");
這只會從內存中的BsonDocument(文檔變量的值)中刪除_id,而不會從數據庫中存儲的文檔中刪除_id。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.