MongoDB InsertBatch JObject - Ошибка сериализации

1

Я использую приложение.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.

Если вам нужна какая-либо другая информация, пожалуйста, предоставьте, я предоставил только то, что я счел уместным.

Благодарю!

Теги:
json.net

1 ответ

1
Лучший ответ

Вы не можете вставить 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);
  • 0
    Это помогло, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню