MongoDB の組み込みスキーマバリデーション
MongoDB はスキーマが柔軟ですが、スキーマバリデーションのための強力な機能も標準で備えています。 コレクションを作成するときに、ドキュメントが従うべき形式を記述する JSON スキーマを指定できます。
注意: ここでは送信を何度でも試せるよう、ランダムに生成したコレクション名を使用しています。
この演習はコースの一部です
Pythonで学ぶMongoDB入門
演習の手順
.create_collection() の呼び出しを調整し、titleは"string"になるようにします。- 作成したばかりの映画コレクション
movに、映画ドキュメントを挿入します。 - 挿入結果を確認し、成功しているか確かめます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create collection with schema spec
mov = client.film.create_collection(
f"movies_{random.randint(1, 100)}",
validator={
"$jsonSchema": {
"required": ["title", "genre", "release_year", "rating"],
"properties": {
"title": { "bsonType": ____ },
"genre": {
"bsonType": "array",
"items": { "bsonType": "string" }
},
"release_year": { "bsonType": "int" },
"rating": { "bsonType": "double" },
"won_oscar": { "bsonType": "bool" }
}
}
}
)
# Insert movie
res = mov.____({
"title": "the avengers",
"genre": ["action", "adventure", "sci-fi"],
"release_year": 2012,
"rating": 8.0
})
# Print result
print(____)