2017-03-22 8 views
14

Używam Słownika. Po .insert() są "_t" i "_v". Dwa posty tutaj mówiły o konwersji na serialization na JSON first then BSON. Używam MongoDB za v2.4.3 kierowcy,Jak zapobiec użyciu _t i _v podczas wstawiania do MongoDB?

mCollection.InsertOne(x); 
IMongoCollection<myDoc> mCollection = Db.GetCollection<myDoc>("whatever"); 

Jeśli zrobić JSON do BSON, to narzeka nie można przekonwertować BsonDocument do Mójdok. Przełączenie na IMongoCollection<BsonDocument> mCollection = Db.GetCollection<BsonDocument>("whatever"); nadal pobiera _t i _v.

Jak uniknąć _t i _v?

enter image description here

Oto mój kod typu danych i wykorzystania:

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 
       } 
      }; 
     } 

    } 
+0

Ten sam numer tutaj ... – Catalin

+0

@MatthewJamesDavis, czego dokładnie potrzebujesz w tym? Ten problem występuje, ponieważ próbujemy zapisać obiekt jako BSON zamiast obiektu JSON jako BSON –

Odpowiedz

0

myślę szukasz w DictionarySerializationOption ... który daje kilka różnych opcji po wyjęciu z pudełka aby określić sposób serializowania słownika.