MongoDb: Как сделать частичные обновления данных JSON с помощью официального драйвера C # - PullRequest
0 голосов
/ 07 января 2012

Я хочу сделать общий метод для ЧАСТИЧНОГО обновления документа из данных json.Данные json содержат подмножество полей обновляемого POCO.У меня есть это:

    public static void Update(MongoCollection collection, ObjectId id, string jsonData) {
         // assume jsonData does not contain the id field.
        var bsonDoc = BsonSerializer.Deserialize<BsonDocument>(jsonData);  
        IMongoUpdate updateDoc = new UpdateDocument("$set", bsonDoc);
        collection.Update(Query.EQ("_id",id), updateDoc);
    }

Это почти работает, но моя проблема в том, что поля с типом ObjectId десериализованы как строки, потому что именно так они представлены в JSON.(Они были сериализованы с помощью javascript JSON2 lib на стороне клиента).

Итак, мои вопросы:

1) Каков наилучший способ заставить общий метод частичного обновления работать с jsonданные с официальным драйвером C #?2) Как я могу получить правильную десериализацию полей poco для правильных типов, а не просто для строк при использовании BsonSerializer?

1 Ответ

0 голосов
/ 08 января 2012
...