Как предотвратить _t и _v при вставке в MongoDB?

Я использую словарь. После .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
                }
            };
        }

    }

Ответы

Ответ 1

Я думаю, что вы ищете DictionarySerializationOption..., который дает вам пару различных вариантов из коробки для определить, как ваш словарь сериализуется.