我有一个包含自定义类型元素数组的文档:
{
_id: 'id',
name: '',
customElements: [
{ _id: 'id',
name: 'name'}
]
}
在C#中我有相应的类:
public class CustomElement
{
[BsonId]
public ObjectId id { get; set; }
public string name { get; set; }
CustomElement ()
{
id = ObjectId.GenerateNewId();
}
}
使用c#官方驱动程序,我尝试创建一个Update语句:
var update = Update.AddToSet("customElements", new CustomElement { name = "name"});
但它显示无法分配给BsonValue 。如何转换它和$ addToSet?
答案 0 :(得分:2)
选项1,通过驱动程序版本1.0附带的Wrapped方法:
Update.AddToSetWrapped<CustomElement>("customElements",
new CustomElement() { name = "name"); //c# driver >= 1.0
选项2,通过ToBsonDocument()扩展方法将您的类转换为BsonValue。
Update.AddToSet("customElements", new CustomElement() { name = "name"}.ToBsonDocument());
希望这有帮助。