0
サンプルデータセットをthis mongo tutorialにインポートしようとしていますが、C#コードを使用して処理しようとしています。ここで私が持っているものです。JSON文字列からリストを逆シリアル化する
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/ Iが標準配列する必要ブラケットとカンマを追加した後、私は、次のC#コードを使用してインポートすることができましたGetting Started/csharp/import-data /)はサンプルデータセット[ここ](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はファイルをインポートするための特別な構造を前提としています。 1行につき1つの文書が許可されます。あなたが持っているサンプルファイルは、見た目から['mongoimport'](https://docs.mongodb.com/manual/reference/program/mongoimport/)の* only *です。テストを行うには、最初のXレコードを新しいファイルにコピーし、 '[]'を書いてカンマで区切ります。私はあなたの命令がうまくいくと思います。 – Quantic
説明してくれてありがとう(そしてあなたの助け)。 jsonファイルを修正し、JArrayにパースして、それらをループしてコレクションに挿入することで、動作させることができました。私は数分で答えを投稿します。 –