Mongodb:如何使用C#官方驱动程序$ addToSet自定义类型元素

时间:2011-11-07 11:43:44

标签: mongodb mongodb-.net-driver

我有一个包含自定义类型元素数组的文档:

{
    _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?

1 个答案:

答案 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());

希望这有帮助。