Pymongo is a popular mongo database python driver library. We can use it to manage the mongo database. In this article, I will show you how to install pymongo library and how to use pymongo to connect to the mongo database. It also tells you how to create a mongo database and collection in python source code.
1. Install Pymongo Library.
- Open a terminal and run the command
pip install pymongo
to download and install pymongo library.$ pip install pymongo Collecting pymongo Downloading pymongo-3.11.0-cp37-cp37m-macosx_10_9_x86_64.whl (378 kB) |████████████████████████████████| 378 kB 112 kB/s Installing collected packages: pymongo Successfully installed pymongo-3.11.0
- Run command
pip show pymongo
to verify that pymongo library has been installed in your python virtual environment.$ pip show pymongo Name: pymongo Version: 3.11.0 Summary: Python driver for MongoDB <http://www.mongodb.org> Home-page: http://github.com/mongodb/mongo-python-driver Author: Mike Dirolf Author-email: mongodb-user@googlegroups.com License: Apache License, Version 2.0 Location: /Users/songzhao/opt/anaconda3/envs/env_ipython_example/lib/python3.7/site-packages Requires: Required-by:
2. Verify Pymongo Library Installation.
- Create a module file in the eclipse Pydev project. The file name is MongoDBConnect.py. You can read the article How To Run Python In Eclipse With PyDev.
- Import pymongo library in your python source code. If there is a red line under the
import pymongo
code, this means it can not find the pymongo library in the current Python interpreter, you can read the article How To Change Python Interpreter In Eclipse Pydev Project To Use Different Python Virtual Environment Library. If there is not any code error( a red line under theimport pymongo
code, it means the pymongo library has been installed in this project used interpreter. )import pymongo
2. Create Mongo Database And Collection Steps Use Pymongo.
2.1 Connect To Mongo Database Server Steps.
- Import
pymongo.MongoClient
module.from pymongo import MongoClient
- Create an instance of
pymongo.MongoClient
.client = MongoClient(db_host, db_port)
- Now you can use the client object to create a mongo database, a mongo collection, and insert document.
2.2 Create Mongo Database Steps.
- Get mongo database connection object as 2.1 section.
- Then run the below code to create ( if the database does not exist ) or connect to ( if the database already exists) the database.
db = client[db_name]
- If the above database does not exist, then it will create a new database in the mongo database server. But only when you insert the first document into the database’s collection, then the database will be created. Otherwise, you will not see the database in MongoDB compass.
2.3 Create Mongo Database Collection Steps.
The collection is similar to a table in a relational database, below are the steps to create ( if not exist ) or connect to ( if exist ) a collection.
- First, get the database object where you want to create or get collection as section 2.2.
- Then run the below code to create or get the collection by collection name.
db = client[db_name] collection = db[collection_name]
2.4 Insert One Document Into Mongo Database Collection Steps.
Only after you insert one document into the mongo database’s collection, the database and collection will be created if not exist before.
- Prepare a python dictionary object ( a JSON string ) as the document which will be inserted into the mongo database collection.
doc_dict = {'user_name':'hello', 'password':'haha', 'email':'hello@gmail.com'}
- Then invoke mongo database collection’s insert_one function to insert the above dictionary object into the collection.
collection.insert_one(doc_dict)
2.5 Create Mongo Database And Collection Examples.
In below example, it will demonstrate how to get a connection to the mongo database server, how to create a mongo database, a mongo collection, and insert a document into the mongo database collection. The database and collection will be created only after you insert one document into the collection. You can see below code comments for detailed explanation.
''' Created on Sep 9, 2020 @author: songzhao ''' # import pymongo. import pymongo # import pymongo.MongoClient, we will use this class to create mongo database server connection object. from pymongo import MongoClient # database host and port number are saved in global variable. db_host = 'localhost' db_port = 27017 # get mongo database server connection object. client = MongoClient(db_host, db_port) ''' This function will create a mongo database use the pass in db_name. But the database do not created in the mongo database server at once. Only when you insert a document into the database collection, then the database and the collection will be created in mongo db server. ''' def create_mongo_db(db_name): # if database exist then return the database, otherwise it will create the database with name db_name and return the database. db = client[db_name] print('Mongo database ', db_name, ' has been created.') # list all mongo database name. db_name_list = client.list_database_names() print('Database name list : ', db_name_list) # check whether the database exist or not. def is_mongo_db_exist(db_name): # get all database name list. db_list = client.list_database_names() if db_name in db_list: print('Mongo database ', db_name, ' exist.') else: print('Mongo database ', db_name, ' do not exist.') ''' This function will create a collection. ''' def create_collection(db_name, collection_name): # create or get the database first. db = client[db_name] # if the collection exist then return it, otherwise it will create the collection with name collection_name. collection = db[collection_name] print('Database : ', db_name, ', Collection : ',collection_name ,' has been created.') collection_name_list = db.list_collection_names() print('Database : ', db_name, ' Collection name list : ', collection_name_list) ''' Check whether the collection exist or not. ''' def is_collection_exist(db_name, collection_name): # get the database. db = client[db_name] # get collection list in the database. collection_name_ist = db.list_collection_names() if collection_name in collection_name_ist: print('Database : ', db_name, ', Collection : ',collection_name ,' exist.') else: print('Database : ', db_name, ', Collection : ',collection_name ,' do not exist.') ''' Insert one document to the database's collection. The document data is saved in a dictionary type variable. ''' def insert_one_document(db_name, collection_name, doc_dict): # create or get the database by name. db = client[db_name] # create or get the collection in above database by name. collection = db[collection_name] # insert the document. collection.insert_one(doc_dict) if __name__ == '__main__': db_name = 'test_db' collection_name = 'test_collection' doc_dict = {} # create database. create_mongo_db(db_name) # you can not see the database exist. is_mongo_db_exist(db_name) # create collection. create_collection(db_name, collection_name) # you can not see the collection exist. is_collection_exist(db_name, collection_name) # insert one document to the database and collection. doc_dict = {'user_name':'jerry', 'password':'def'} insert_one_document(db_name, collection_name, doc_dict) # after insert document, the database and collection exist in mongo database server. is_mongo_db_exist(db_name) is_collection_exist(db_name, collection_name) # insert a new document to a new mongo database and collection. db_name = 'user_account' collection_name = 'account_info' doc_dict = {'user_name':'hello', 'password':'haha', 'email':'hello@gmail.com'} insert_one_document(db_name, collection_name, doc_dict) is_mongo_db_exist(db_name) is_collection_exist(db_name, collection_name)
Below is the above source code execution result.
Mongo database test_db has been created. Database name list : ['admin', 'config', 'local'] Mongo database test_db do not exist. Database : test_db , Collection : test_collection has been created. Database : test_db Collection name list : [] Database : test_db , Collection : test_collection do not exist. Mongo database test_db exist. Database : test_db , Collection : test_collection exist. Mongo database user_account exist. Database : user_account , Collection : account_info exist.
You can see the newly created mongo database and collection in MongoDB compass.
Reference