{ "cells": [ { "cell_type": "markdown", "id": "ee901686-b350-48aa-9abb-4d3565316d31", "metadata": {}, "source": [ "# The `contact` collection" ] }, { "cell_type": "code", "execution_count": null, "id": "809a2414-2086-4f37-b9ef-6ae5742f1e43", "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": "1fa7051f-fade-439c-8193-20afeab5c1b7", "metadata": {}, "source": [ "### First we have to connect to the `school` database." ] }, { "cell_type": "code", "execution_count": null, "id": "9fd13218-9ffb-4577-9bfb-59a205e13d8c", "metadata": {}, "outputs": [], "source": [ "mongo_uri = 'mongodb://localhost:27017/'\n", "\n", "client = MongoClient(mongo_uri);\n", "client" ] }, { "cell_type": "code", "execution_count": null, "id": "6ec170ea-5cd4-4bcc-9f95-72ccf290c4e9", "metadata": {}, "outputs": [], "source": [ "school_db = client.school\n", "school_db" ] }, { "attachments": { "c0df1ff7-4855-498a-a4d0-5503413119e4.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "2df5efaa-678b-442d-8cbf-b8357560e951", "metadata": {}, "source": [ "## Create the `contact` collection.\n", "![Screenshot 2023-04-30 at 11.06.28 PM.png](attachment:c0df1ff7-4855-498a-a4d0-5503413119e4.png)" ] }, { "cell_type": "code", "execution_count": null, "id": "89549454-dadc-41c5-a26d-5dc167188c1c", "metadata": {}, "outputs": [], "source": [ "school_db.contact.drop()" ] }, { "cell_type": "code", "execution_count": null, "id": "b5a4bdf9-cd20-43ec-9bfe-d802ca28c75a", "metadata": {}, "outputs": [], "source": [ "contact_coll = school_db.contact\n", "contact_coll" ] }, { "cell_type": "markdown", "id": "4553dd39-000c-40c1-8f56-665da9fb0f93", "metadata": {}, "source": [ "## Insert one document." ] }, { "cell_type": "code", "execution_count": null, "id": "bd7c6c81-d8e5-47ed-a22f-d63217279001", "metadata": {}, "outputs": [], "source": [ "contact_coll.insert_one(\n", " { 'contact_id': 'C01', 'email': 'mary.jane@state.edu' }\n", ")" ] }, { "cell_type": "markdown", "id": "b0977ae0-b8be-46d1-aa2c-200c6a6f8cfe", "metadata": {}, "source": [ "## Query for the document.\n", "#### Field `_id` is an internal MongoDB document identifier." ] }, { "cell_type": "code", "execution_count": null, "id": "3b889166-ff6e-4c55-87f0-a6b01beb932f", "metadata": {}, "outputs": [], "source": [ "first_contact = contact_coll.find_one()\n", "first_contact" ] }, { "cell_type": "markdown", "id": "9c6b0a85-4e94-479d-a4f4-c79d4e396e2d", "metadata": {}, "source": [ "## Only return the `email` field." ] }, { "cell_type": "code", "execution_count": null, "id": "f51c46fb-8dcc-4cb8-9c14-787e8bd2a6d9", "metadata": {}, "outputs": [], "source": [ "first_contact['email']" ] }, { "cell_type": "markdown", "id": "514d5841-c4eb-4b0b-9a50-983a3fc883df", "metadata": {}, "source": [ "## The document's keys." ] }, { "cell_type": "code", "execution_count": null, "id": "aab65f48-2aec-4808-9891-8d163a1cde31", "metadata": {}, "outputs": [], "source": [ "first_contact.keys()" ] }, { "cell_type": "markdown", "id": "1e2d2e49-326d-46c9-ba94-43be0f4dc805", "metadata": {}, "source": [ "## Insert the remaining documents." ] }, { "cell_type": "code", "execution_count": null, "id": "821ca088-c9d1-4e43-925a-6882f456afd5", "metadata": {}, "outputs": [], "source": [ "contact_coll.insert_many(\n", " [ { 'contact_id': 'C02', 'email': 'kim.smith@state.edu' },\n", " { 'contact_id': 'C03', 'email': 'john.doe@state.edu' },\n", " { 'contact_id': 'C04', 'email': 'tim.novak@state.edu' },\n", " { 'contact_id': 'C05', 'email': 'leslie.klein@state.edu' },\n", " { 'contact_id': 'C06', 'email': 'pat.rogers@state.edu' },\n", " { 'contact_id': 'C07', 'email': 'signey.thompson@state.edu' },\n", " { 'contact_id': 'C08', 'email': 'john.lane@state.edu' },\n", " { 'contact_id': 'C09', 'email': 'mabel.flynn@state.edu' }\n", " ]\n", ")" ] }, { "cell_type": "markdown", "id": "ed1577bd-1175-4bf7-9d61-858ec99fc5c3", "metadata": {}, "source": [ "## Find all the contacts." ] }, { "cell_type": "code", "execution_count": null, "id": "2f5d3736-39fe-4387-bb96-dc8236e85ce5", "metadata": {}, "outputs": [], "source": [ "all_contacts = contact_coll.find()\n", "DataFrame(all_contacts)" ] }, { "cell_type": "markdown", "id": "226245b5-43dc-4a98-98c6-f09faebbbfe7", "metadata": {}, "source": [ "## Sort by the `email` field." ] }, { "cell_type": "code", "execution_count": null, "id": "7efe0035-c741-4a87-947b-4b0b89385031", "metadata": {}, "outputs": [], "source": [ "sorted_contacts = contact_coll.find().sort('email')\n", "DataFrame(sorted_contacts)" ] }, { "cell_type": "markdown", "id": "ef2ea9ae-b49d-461a-a37e-586a3399d8f1", "metadata": {}, "source": [ "## Find the document with a given `contact_id`." ] }, { "cell_type": "code", "execution_count": null, "id": "be99e385-3960-41a1-aaa2-da5317deb654", "metadata": {}, "outputs": [], "source": [ "a_contact = contact_coll.find( {'contact_id': 'C07'} )\n", "DataFrame(a_contact)" ] }, { "cell_type": "markdown", "id": "ee70decf-6319-4b29-b860-1590a6795d68", "metadata": {}, "source": [ "## Find the students' `contact` documents
(`contact_id <= 'C05'`)." ] }, { "cell_type": "code", "execution_count": null, "id": "6498867a-6c70-4d5c-b954-2ee2f8f8d7f0", "metadata": {}, "outputs": [], "source": [ "student_contacts = contact_coll.find( {'contact_id': {'$lte': 'C05'}} )\n", "DataFrame(student_contacts)" ] }, { "cell_type": "markdown", "id": "5c9f7587-62bb-49ed-a225-3fe111ec8df2", "metadata": {}, "source": [ "## Same query but this time don't show the internal `_id` field: `{'_id': 0}`" ] }, { "cell_type": "code", "execution_count": null, "id": "76b6afef-88d2-4476-bc9d-f9b893f04850", "metadata": {}, "outputs": [], "source": [ "student_contacts = contact_coll.find( {'contact_id': {'$lte': 'C05'}},\n", " {'_id': 0} )\n", "DataFrame(student_contacts)" ] }, { "cell_type": "markdown", "id": "45dd62c8-c49e-48d4-8c57-287778fb6492", "metadata": {}, "source": [ "## What do we have so far?" ] }, { "cell_type": "code", "execution_count": null, "id": "f58a6376-ff16-4ab2-86cb-5a0b78f6355c", "metadata": {}, "outputs": [], "source": [ "client.list_database_names()" ] }, { "cell_type": "code", "execution_count": null, "id": "f307f386-3f7f-4c93-817d-1f57e77ddcd3", "metadata": {}, "outputs": [], "source": [ "school_db.list_collection_names()" ] }, { "cell_type": "code", "execution_count": null, "id": "1c563e54-8828-40d0-94de-af996cdaf910", "metadata": {}, "outputs": [], "source": [ "client.close()" ] }, { "cell_type": "markdown", "id": "4cb255ad-829c-4e05-b16e-dde10225c22d", "metadata": {}, "source": [ "#### (c) 2023 by Ronald Mak" ] }, { "cell_type": "code", "execution_count": null, "id": "9f4c14b5-69a9-477f-8e17-e657e5457043", "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 }