繁体   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