我想制作一个通用的方法来从json数据中对文档进行PARTIAL更新。 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)使用官方C#驱动程序使用json数据进行一般部分更新方法的最佳方法是什么? 2)如何在使用BsonSerializer时将poco字段正确地反序列化为正确的类型而不是字符串?
答案 0 :(得分:0)