Objective and Prerequisites

Objective: This segment introduces how to create database and collection in MongoDB using Python.

Prerequisites: PyMongo is installed, and MongoDB is up and running in the background. If not, then refer to the Python Database Connectivity segment in sequence.

Start MongoDB
kodingwindow@kw:~$ sudo systemctl start mongod
kodingwindow@kw:~$ mongosh
Current Mongosh Log ID:	65154469633b7d0fc9cad531
Connecting to:		mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.5
Using MongoDB:		7.0.9
Using Mongosh:		2.2.5

For mongosh info see: https://docs.mongodb.com/mongodb-shell/
...

test> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
Python MongoDB to connect, create database, and collection using PyMongo distribution
In the following program, database and collection automatically get created. If database and collection already exist in MongoDB, then new documents will get inserted into an existing collection.
kw.py
import pymongo
from pymongo import MongoClient
client=MongoClient()
print("Connection Established")

# client=MongoClient('localhost',27017)
# db=client.DB
# collection=db.holders

client=MongoClient('mongodb://localhost:27017/')
db=client['DB']
collection=db['holders']

holder1={
'account_no': 2562348989,
'name': 'James Moore',
'bank': 'Barclays',
'amount': 5000
}

doc=db.holders.insert_one(holder1)
print("\nCollection Name(s): ",db.list_collection_names())
# print(db.holders.find_one())
print("\nFirst document key: {}".format(doc.inserted_id))
Output
kodingwindow@kw:~$ python3 kw.py
Connection Established

Collection Name(s):  ['holders']

First document key: 662df3178b52d7e4502224af
MongoDB Instance
test> show dbs
DB      0.000GB
admin   0.000GB
config  0.000GB
local   0.000GB

test> use DB
switched to db DB

DB> db.getCollectionNames()
[ "holders" ]

DB> db.holders.find().pretty()
[
  {
    _id: ObjectId('662df3178b52d7e4502224af'),
    account_no: Long('2562348989'),
    name: 'James Moore',
    bank: 'Barclays',
    amount: 5000
  }
]
Advertisement