Я использую приложение.NET и пытаюсь вставить в MongoDB. Я использую InsertBatch и передаю ему IEnumerable из Newtonsoft.Json.Linq.JObject
Ошибка, которую я получаю:
{"Serializer DictionarySerializer<String, JToken> expected serialization options of type DictionarySerializationOptions, not DocumentSerializationOptions."}
Мой код:
private void InsertItemsToMongo(IEnumerable<JObject> list)
{
MongoClient = new MongoClient("mongodb://localhost:27017");
var myDb = mongo.GetServer().GetDatabase("MyDatabase");
if (!myDb.CollectionExists("MyStuff");
myDb.CreateCollection("MyStuff");
MongoCollection<JObject> myCollection = myDb.GetCollection<JObject>("MyStuff");
myCollection.InsertBatch(list);
}
Ошибка в строке InsertBatch.
Если вам нужна какая-либо другая информация, пожалуйста, предоставьте, я предоставил только то, что я счел уместным.
Благодарю!
Вы не можете вставить JObject в mongo, вам нужно преобразовать его в BsonDocument
var bsonlist = new List<BsonDocument>();
foreach (var obj in list)
{
bsonlist.Add(BsonDocument.Parse(obj));
}
var myCollection = database.GetCollection("MyStuff");
var doc = BsonArray.Create(bsonlist);
myCollection.InsertBatch(doc);