从JSON字符串反序列化List <bsondocument>

时间:2016-12-02 16:12:33

标签: c# mongodb

我正在尝试在this mongo tutorial中导入示例数据集,但我正在尝试使用C#代码。这就是我所拥有的:

 var reader = new StreamReader("C:\\primer-dataset.json");
 string line;
 var sb = new StringBuilder();
 while ((line = reader.ReadLine()) != null)
 {
     sb.Append(line);
 }

 var documents = BsonSerializer.Deserialize<List<BsonDocument>>(sb.ToString());
 var collection = _database.GetCollection<BsonDocument>("restaurants");
 collection.InsertMany(documents);

当我尝试反序列化json字符串时出现以下错误:

  

无法从BsonType'Document'

反序列化'List'

我无法在网上找到任何错误的信息。

1 个答案:

答案 0 :(得分:0)

最后,我必须根据Quantic的评论修改JSON文档。示例文档假定用户将使用mongoimport导入数据。一旦我添加了必要的括号和逗号以使其成为标准数组,我就可以使用以下C#代码导入它:

    var collection = _database.GetCollection<BsonDocument>("restaurants");
    var reader = new StreamReader("C:\\primer-dataset.json");
    string line;
    var sb = new StringBuilder();
    while ((line = reader.ReadLine()) != null)
    {
       sb.Append(line);
    }

    var arr = JArray.Parse(sb.ToString());
    foreach(JObject o in arr)
    {
       var d = BsonDocument.Parse(o.ToString());
       collection.InsertOne(d);
    }