[英]MongoDB How to convert IEnumerable to Bson.BsonValue using C#?
我有一個要保存到MongoDB集合中的模型,看起來像這樣
public string Property1 {get; set; }
public string Property2 {get; set; }
public IEnumerable<CustomClass> Property3 { get; set;}
嘗試保存到MongoDB時,我可以執行以下操作:
var temp = new BsonDocument();
temp["Property1"] = model.Property1;
temp["Property2"] = model.Property2;
collection.InsertOne(temp);
如何添加Property3? 我收到一個編譯時錯誤,如果嘗試做:
temp["Property3"] = model.Property3 //Cannot convert IEnumerble<CustomClass> to MongoDB.Bson.BsonValue
將我的IEnumerble <CustomClass>轉換為MongoDB.Bson.BsonValue的技巧是什么? CustomClass僅有兩個字符串屬性。
您可以遍歷IEnumerable並創建BsonDocument,每個包含兩個字符串屬性。
var doc = new BsonDocument
{
{ "property1", obj.Property1 },
{ "property2", obj.Property2 }
};
將BsonDocument的添加到BsonArray-
BsonArray array = new BsonArray();
...
array.Add(doc);
...
然后,當您需要執行諸如Update之類的保存操作時,可以使用UpdateBuilder的SetWrapped方法-
Update.Set(...)
.SetWrapped("customClasses", array)
...
我沒有使用過mongodb了,所以只看一下我之前編寫的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.