{ "cells": [ { "cell_type": "markdown", "id": "5190c5e9-e98d-4e05-a089-f2ddb9a0d7d8", "metadata": {}, "source": [ "# The `klass` collection" ] }, { "cell_type": "code", "execution_count": null, "id": "fb7170a6-d7a3-4629-b868-f31c91e3f8fe", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from pandas import DataFrame\n", "\n", "import pymongo\n", "from pymongo import MongoClient" ] }, { "cell_type": "markdown", "id": "341161b8-47ff-4940-a8ea-5b7bff054d57", "metadata": {}, "source": [ "### Connect to the `school` database." ] }, { "cell_type": "code", "execution_count": null, "id": "3d1c7d25-0d66-494d-83d5-f67644562f97", "metadata": {}, "outputs": [], "source": [ "mongo_uri = 'mongodb://localhost:27017/'\n", "\n", "client = MongoClient(mongo_uri);\n", "client" ] }, { "cell_type": "code", "execution_count": null, "id": "1064ee84-ddd6-4780-a3d4-9df20bcc9d36", "metadata": {}, "outputs": [], "source": [ "school_db = client.school\n", "school_db" ] }, { "attachments": { "645ff48b-9044-4c22-8771-a36b753d5680.png": { "image/png": "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4Jprrhm85S1vGZxzzjkLLiMzJgKJwOIQSAG1OPwydyKQCCQCicAyIZACapmAzWITgUQgEUgEFodA67v4Fldk5k4E5h+Bf/mXfxl84hOfGFx44YWD//7v/x7c7373G7zgBS8ox3Gtv+mmmwYnnHDCQH7rVLe85S0H22233eD5z3/+4AEPeMAGWS+55JLBSSedVNLe+ta3Htz//vcfPP7xjx888pGPXFC6DTLlj0RgDSCwSVtE3XxZ7Bp48mu4i5dddtlgl112aUXg8ssvH9znPvcZnH322YM99thj8MxnPnPw7ne/u6T9x3/8x8GTnvSkItBc+Pmf//nhud8f+9jHBjvttJPTwd/+7d8Onv70p5fz5tfrX//6wX777VcuT5uuWUb+TgRWAwL5stjV8BSzD0uGwFe+8pXBU57ylFLeEUccMfjmN785uP766weveMUryrXXvva1I+t629veVgQSofXlL3958NWvfnXw6U9/evDoRz+65Dn++OOHed/61reW83e+852DG2+8cfBf//VfQ0GnnO9///vl/rTphgXnSSKwhhBIF98aetjZ1cHg7/7u74qQ2X333QfPe97zCiQsof33339w7rnnDr71rW8VgdXE6gc/+MHgF3/xFwcPf/jDB4ceeuhg8803L0m23Xbbwd577z345Cc/Ofja1742zPbv//7v5XzrrbcebLrppuWcYPvud787+IVf+IXBj370o8Fmm202mDbdsOA8SQTWEAIpoNbQw86uDgZXXHFFgcFaUE2EyMUXXzy8FOnigvtHH310+fnDH/6wrCsRLtahzj///HI9rCI/nvjEJw7e9773lTUnQm3XXXctlpZ1rk022aSk75JumCFPEoE1hEAKqDX0sLOr6wXUFlts0RmOr3/964M3vOENgxNPPHFi3je96U2D//3f/y2bJLgBfQ4++ODB3e9+9wHX4u/+7u+WMqZNN7HCTJAIrEIEcpv5Knyo2aXRCNzhDncoN7namvSTn/ykeWn4m4vv937v94pwuvOd7zx44QtfODjmmGMGF1xwQdkNOEz4sxPuOxaXtarjjjtu8LSnPa1sqviP//iPsnnChgs0bbqfFZuHRGBNIZACak097uzsve997wLCP/3TP20ExpOf/OTBL//yLw9ddnUCu41sLSec7PSzucEuvwc96EEDGy/Qj3/843K8+eabB+9973uL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" } }, "cell_type": "markdown", "id": "ef02d922-0d10-4507-93a6-e16a24f315e9", "metadata": {}, "source": [ "## Create the `klass` collection.\n", "![Screenshot 2023-05-01 at 2.47.27 PM.png](attachment:645ff48b-9044-4c22-8771-a36b753d5680.png)" ] }, { "cell_type": "code", "execution_count": null, "id": "a81ca251-bce6-463a-b086-39c9539aa85b", "metadata": {}, "outputs": [], "source": [ "school_db.klass.drop()" ] }, { "cell_type": "code", "execution_count": null, "id": "a38a1693-69d8-4d9d-ba1e-7b8ee9c210e1", "metadata": {}, "outputs": [], "source": [ "class_coll = school_db.klass\n", "class_coll" ] }, { "cell_type": "code", "execution_count": null, "id": "65ea7879-bf43-420d-a24b-f9ad7db88b79", "metadata": {}, "outputs": [], "source": [ "class_coll.insert_many(\n", " [ { 'code': 'DATA200', 'teacher_fk': 'T7051', 'subject': 'Python Programming', 'room': 101 },\n", " { 'code': 'DATA220', 'teacher_fk': 'T7008', 'subject': 'Mathematical Models', 'room': 114 },\n", " { 'code': 'DATA225', 'teacher_fk': 'T7003', 'subject': 'Database Systems', 'room': 101 },\n", " { 'code': 'DATA240', 'teacher_fk': 'T7012', 'subject': 'Data Mining', 'room': 120 },\n", " { 'code': 'DATA245', 'teacher_fk': 'T7051', 'subject': 'Machine Learning', 'room': 115 }\n", " ]\n", ")" ] }, { "cell_type": "markdown", "id": "bdb4b108-1c55-4fcd-8458-f9d2e568e7b2", "metadata": {}, "source": [ "## Find all the classes." ] }, { "cell_type": "code", "execution_count": null, "id": "e8344208-d9a8-4d91-8d56-2412c7fbe5f3", "metadata": {}, "outputs": [], "source": [ "sorted_classes = class_coll.find({}, {'_id':0}).sort('code')\n", "DataFrame(sorted_classes)" ] }, { "cell_type": "markdown", "id": "409fdf13-b275-45f4-879f-0cfc27a58d86", "metadata": {}, "source": [ "## What do we have so far?" ] }, { "cell_type": "code", "execution_count": null, "id": "262fe0ce-2a6e-40c7-85cb-437b5667a8f9", "metadata": {}, "outputs": [], "source": [ "school_db.list_collection_names()" ] }, { "cell_type": "code", "execution_count": null, "id": "60e90d04-f424-42c9-a9d3-d4f657427be5", "metadata": {}, "outputs": [], "source": [ "client.close()" ] }, { "cell_type": "markdown", "id": "5e793acd-7a50-4e48-aed5-9396087f8346", "metadata": {}, "source": [ "#### (c) 2023 by Ronald Mak" ] }, { "cell_type": "code", "execution_count": null, "id": "240ed160-169d-4b6e-ab18-5f031d1a3098", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 5 }