簡體   English   中英

C#類到BSON往返

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM