Подтвердить что ты не робот

BsonValue и пользовательские классы в драйвере MongoDB С#

Я пытаюсь использовать $push в запросе обновления в mongodb с драйвером С#.

Для метода Update.Push(...) требуется имя строки (это отлично), а BsonValue - "нажата". Здесь я сталкиваюсь с проблемами. Я пытаюсь вывести не простой тип в массив полей.

Например: { $push : { "arrayfield" : { "a" : 7, "b" : 12 } } }

Это отлично работает на консоли Mongo, но я не могу понять, как сделать мой объект в BsonValue. Я пробовал BsonValue.Create(myObjectInstance), но это дает мне ошибку, говоря, что тип .NET не может быть сопоставлен с BsonValue.

Я пропустил что-то простое?

4b9b3361

Ответ 1

Я знаю два подхода:

  • Update.PushWrapped<MyObject>("arrayfield", myObjectInstance);//С# driver >= 1.0

  • Или преобразуйте свой класс в BsonValue самостоятельно с помощью метода расширения ToBsonDocument().

    Update.Push("arrayfield", myObjectInstance.ToBsonDocument());