簡體   English   中英

MongoDB如何使用C#將IEnumerable轉換為Bson.BsonValue?

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

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