BsonValue и пользовательские классы в драйвере MongoDB С#
Я пытаюсь использовать $push
в запросе обновления в mongodb с драйвером С#.
Для метода Update.Push(...)
требуется имя строки (это отлично), а BsonValue - "нажата". Здесь я сталкиваюсь с проблемами. Я пытаюсь вывести не простой тип в массив полей.
Например: { $push : { "arrayfield" : { "a" : 7, "b" : 12 } } }
Это отлично работает на консоли Mongo, но я не могу понять, как сделать мой объект в BsonValue. Я пробовал BsonValue.Create(myObjectInstance)
, но это дает мне ошибку, говоря, что тип .NET не может быть сопоставлен с BsonValue.
Я пропустил что-то простое?
Ответы
Ответ 1
Я знаю два подхода:
-
Update.PushWrapped<MyObject>("arrayfield", myObjectInstance);
//С# driver >= 1.0
-
Или преобразуйте свой класс в BsonValue
самостоятельно с помощью метода расширения ToBsonDocument()
.
Update.Push("arrayfield", myObjectInstance.ToBsonDocument());