Ответ 1
Я думаю, что вы ищете DictionarySerializationOption..., который дает вам пару различных вариантов из коробки для определить, как ваш словарь сериализуется.
Я использую словарь. После .insert() есть "_t" и "_v". В двух сообщениях здесь говорилось о сериализации, конвертируя в JSON сначала BSON. Я использую драйвер MongoDB v2.4.3,
mCollection.InsertOne(x);
IMongoCollection<myDoc> mCollection = Db.GetCollection<myDoc>("whatever");
Если я делаю JSON-to-BSON, он жалуется, что не может преобразовать BsonDocument в myDoc. Переключение на IMongoCollection<BsonDocument> mCollection = Db.GetCollection<BsonDocument>("whatever");
по-прежнему получает _t и _v.
Как избежать _t и _v?
Вот мой код типа данных и использования:
public class myObjForDictionary
{
//...
}
public class myDoc
{
// ... some other elements, then Dictionary
public Dictionary<string, object> myDictionary { get; set; }
}
// to instantiate the
class myClass
{
// define MongoDB connection, etc.
// instantiate myDoc and populate data
var x = new myDoc
{
//...
myDictionary = new Dictionary<string, object>
{
{ "type", "something" },
{ "Vendor", new object[0] },
{ "obj1", //data for myObjForDictionary
}
};
}
}
Я думаю, что вы ищете DictionarySerializationOption..., который дает вам пару различных вариантов из коробки для определить, как ваш словарь сериализуется.