【问题标题】:MongoDB InsertBatch JObject - Serialization errorMongoDB InsertBatch JObject - 序列化错误
【发布时间】:2014-12-14 16:14:25
【问题描述】:

我正在使用 .NET 应用程序并尝试插入 MongoDB。 我正在使用 InsertBatch 并将其传递给 Newtonsoft.Json.Linq.JObject 的 IEnumerable

我得到的错误:

{"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 行抛出。

如果您需要任何其他信息,请提供,我只提供了我认为相关的信息。

谢谢!

【问题讨论】:

    标签: c# .net mongodb json.net


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 1970-01-01
      • 2020-11-04
      • 2017-06-30
      • 1970-01-01
      • 2012-08-18
      • 2014-10-06
      • 2017-09-03
      • 1970-01-01
      相关资源
      最近更新 更多