スキーマ内のコレクションを操作するには、db
グローバルオブジェクトを使用して現在のスキーマにアクセスします。 この例では、以前にインポートした world_x
スキーマと countryinfo
コレクションを使用しています。 したがって、発行する操作の形式は db.
で、collection_name
.operationcollection_name
は操作の実行対象となるコレクションの名前です。 次の例では、操作は countryinfo
コレクションに対して実行されます。
add()
メソッドを使用して、あるドキュメントまたはドキュメントのリストを既存のコレクションに挿入します。 次のドキュメントを countryinfo
コレクションに挿入します。 これは複数行コンテンツであるため、Enter を 2 回押してドキュメントを挿入します。
mysql-py> db.countryinfo.add(
{
"GNP": .6,
"IndepYear": 1967,
"Name": "Sealand",
"Code:": "SEA",
"demographics": {
"LifeExpectancy": 79,
"Population": 27
},
"geography": {
"Continent": "Europe",
"Region": "British Islands",
"SurfaceArea": 193
},
"government": {
"GovernmentForm": "Monarchy",
"HeadOfState": "Michael Bates"
}
}
)
このメソッドは、操作のステータスを返します。 ドキュメントを検索して操作を確認できます。 例:
mysql-py> db.countryinfo.find("Name = 'Sealand'")
{
"GNP": 0.6,
"_id": "00005e2ff4af00000000000000f4",
"Name": "Sealand",
"Code:": "SEA",
"IndepYear": 1967,
"geography": {
"Region": "British Islands",
"Continent": "Europe",
"SurfaceArea": 193
},
"government": {
"HeadOfState": "Michael Bates",
"GovernmentForm": "Monarchy"
},
"demographics": {
"Population": 27,
"LifeExpectancy": 79
}
}
ドキュメントの追加時に指定されたフィールドに加えて、_id
というフィールドもあります。 各ドキュメントには、_id
と呼ばれる識別子フィールドが必要です。 _id
フィールドの値は、同じコレクション内のすべてのドキュメント間で一意である必要があります。 MySQL 8.0.11 以上では、ドキュメント ID はクライアントではなくサーバーによって生成されるため、MySQL Shell は_id
値を自動的に設定しません。 8.0.11 以上の MySQL サーバーでは、ドキュメントに_id
フィールドが含まれていない場合、_id
値が設定されます。 以前の 8.0 リリースまたは 5.7 の MySQL サーバーは、この状況では_id
値を設定しないため、明示的に指定する必要があります。 そうでない場合、MySQL Shell はエラー 5115 「文書に必須フィールドがありません」を返します。 詳細は、Understanding Document IDs を参照してください。
完全な構文の定義は、CollectionAddFunction を参照してください。
Understanding Document IDsを参照してください。