#mongodb #mongodb-.net-driver
#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 #, я пытаюсь создать инструкцию обновления:
var update = Update.AddToSet("customElements", new CustomElement { name = "name"});
Но это показывает, что он не может быть назначен BsonValue. Как преобразовать его и $addToSet?
Ответ №1:
Вариант 1, с помощью обернутых методов, которые поставляются с версией драйвера 1.0:
Update.AddToSetWrapped<CustomElement>("customElements",
new CustomElement() { name = "name"); //c# driver >= 1.0
Вариант 2, самостоятельно преобразуйте свой класс в BsonValue с помощью метода расширения ToBsonDocument().
Update.AddToSet("customElements", new CustomElement() { name = "name"}.ToBsonDocument());
Надеюсь, это поможет.