インポート エラーの対処
このステップでは、MongoDB と mongoimport
を使用しているときの一般的なインポート エラーをどのように対処するかを学びます。これらのエラーを理解することで、データインポートの問題をトラブルシューティングすることができます。
まず、いくつかのインポート チャレンジを含むサンプル ファイルを作成しましょう。
cd ~/project
意図的に問題のある CSV ファイルを作成します。
nano problematic_members.csv
次のコンテンツを追加します。
name,age,membership_type,join_date
John Doe,thirty-five,Premium,2023-01-15
Jane Smith,28,Standard,invalid-date
Alice Johnson,42,Gold,2021-06-10
意図的なエラーに注意してください。
- "thirty-five" は有効な数値ではありません
- "invalid-date" は適切な日付形式ではありません
このファイルをインポートしてみましょう。
mongoimport --db library_database --collection problematic_members --type csv --file ~/project/problematic_members.csv --headerline
おそらく次のようなエラー メッセージが表示されます。
2024-xx-xx 00:00:00.000 [#######] Failed: document validation error
このようなエラーを処理するには、--stopOnError
と --jsonArray
フラグを使用します。
mongoimport --db library_database --collection problematic_members --type csv --file ~/project/problematic_members.csv --headerline --stopOnError
ファイルのクリーンなバージョンを作成します。
nano clean_members.csv
修正済みのコンテンツを追加します。
name,age,membership_type,join_date
John Doe,35,Premium,2023-01-15
Jane Smith,28,Standard,2022-11-20
Alice Johnson,42,Gold,2021-06-10
次に、検証付きでインポートします。
mongoimport --db library_database --collection clean_members --type csv --file ~/project/clean_members.csv --headerline
インポートを検証します。
mongosh library_database --eval "db.clean_members.find()"
もう 1 つの一般的なエラー、つまり不正な JSON 形式を示しましょう。
nano invalid_books.json
意図的に構文が不備な JSON を追加します。
[
{
"title": "MongoDB Basics",
"author": "Jane Smith",
"year": 2023
},
{
"title": "Incomplete Book"
// カンマとクロージング ブレースが欠けています
}
]
このファイルをインポートしてみましょう。
mongoimport --db library_database --collection invalid_books --file ~/project/invalid_books.json --jsonArray
JSON の解析に関するエラーが表示されます。
有効な JSON ファイルを作成します。
nano valid_books.json
正しい JSON を追加します。
[
{
"title": "MongoDB Basics",
"author": "Jane Smith",
"year": 2023
},
{
"title": "Complete Book",
"author": "John Doe",
"year": 2022
}
]
有効な JSON をインポートします。
mongoimport --db library_database --collection valid_books --file ~/project/valid_books.json --jsonArray