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