0
我试图导入this mongo tutorial中的示例数据集,但我正在尝试使用C#代码来完成此操作。以下是我有:从JSON字符串反序列化List <BsonDocument>
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“文件”
“列表”我无法在网上找到任何东西来说明我做错了什么。
注:此页面(https://docs.mongodb.com/ getting-started/csharp/import-data /)链接到示例数据集[here](https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json)。我对json不太了解,但由于存在多个根元素,因此它似乎无效。因为它是一个'List>'我非常肯定在整个事情上都需要'[]',那么每个记录都需要一个逗号来分隔它。但是这个文件直接来自MongoDb的网站作为示例文件,因此必须有另一种方式来读取它。 –
Quantic
答案似乎解释了[这里](https://zaiste.net/2012/08/importing_json_into_mongodb/):“默认情况下,monogoimport假定文件从一个特殊的结构导入:类似于JSON格式,除了每行一个文件是允许的,每个文件之后都没有逗号“。您看到的示例文件是*'*仅用于['mongoimport'](https://docs.mongodb.com/manual/reference/program/mongoimport/)。要做你的测试,你可以将第一个X记录复制到一个新文件中,在它们周围放置'[]'并用逗号分隔它们。那么我认为你的命令会正常工作。 – Quantic
感谢您的澄清(和你的帮助)。我通过修改json文件并解析为JArray来实现它,他们循环遍历并插入集合中。我会在几分钟后发布答案。 –