Ben mongodb + C# sürücüsüne yeni geldim, bu yüzden sondaki herhangi bir naifliği affet.MongoDB C# Sürücü - Bir Sözlük Listesini Kullanarak InsertBatch Nasıl Kullanılır <string, string>
Bir grup anahtar/değer çiftleri kümesinde toplu iş eki yapmaya çalışıyorum ve bu nedenle veri yapım List<Dictionary<string,string>>
türünde. Ben serileştirme bir hata aldınız
public void Persist(string collectionName, List<Dictionary<string, string>> documents)
{
string connectionString = ConfigurationManager.ConnectionStrings[CONNECTION_STRING_KEY].ConnectionString;
MongoServer server = MongoServer.Create(connectionString);
MongoCredentials credentials = new MongoCredentials("MYUser", "MyPassword");
MongoDatabase myDb = server.GetDatabase("myDb", credentials);
var collection = myDb .GetCollection(collectionName);
using (server.RequestStart(myDb))
{
var result = collection.InsertBatch(documents);
}
}
: Burada
benim kalıcılık kod örneği verilmiştirMongoDB.Bson.BsonSerializationException: Serializer DictionarySerializer, tip DictionarySerializationOptions ait seri hale seçenekleri beklenmemektedir DocumentSerializationOptions.
Ayarları kaçırıyor muyum?
DÜZENLEME: Daha Fazla Bilgi
Benim sözlükleri benim varlıklardır. Anlam, özellikleri tutmak için bir nesne oluşturmak yerine, onları bir Dictionary
içine döküyorum. Mongo belgelerinden, bu sadece bir mongo Document
çevirmelidir gibi görünüyor.
FAZLA DÜZENLEME:
using (server.RequestStart(myDb))
{
foreach(var doc in documents)
collection.Insert(new BsonDocument(doc));
//var result = collection.InsertBatch(typeof(Dictionary<string, string>), documents);
}
Ancak benim endişem gerçek senaryo altında beri performanstır: Çevirme Soru
Ben kullanarak ifadeyi değiştirerek eklemek için tek bir örneğini elde edebildi Kolayca 10k + sözlüklerim olacak. Bu kodu kullanarak, sürücü bunları toplu halde çalıştıracak kadar akıllı mı? InsertBatch'i tutmanın bir yolu var mı ama aynı şeyi mi yapıyorsunuz?
Elbette, herhangi bir yardım çok takdir edilmektedir.
aradığım Tam olarak ne! Teşekkür ederim! – OnResolve