PyMongo Getting started with PyMongo

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Extensions
> Step 2: And Like the video. BONUS: You can also share it!

Remarks

This section provides an overview of what pymongo is, and why a developer might want to use it.

It should also mention any large subjects within pymongo, and link out to the related topics. Since the Documentation for pymongo is new, you may need to create initial versions of those related topics.

Basic CRUD Operation

MongoDB stores data records as BSON documents. BSON is the binary representation of JSON.

$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test
 

Create

Insert a single document insert_one(document)

>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')
 

Insert multiple documents insert_many(documents)

>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]
 

Replace a single document matching the filter replace_one(filter, replacement, upsert=False) . (to insert a new document if matching document doesn't exist, use upsert=True )

>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1
 

Update

Update a single document matching the filter update_one(filter, update, upsert=False)

>>> result = col.update_one({'x': 1}, {'x': 3})
 

Update one or more documents that match the filter update_many(filter, update, upsert=False)

>>> result = col.update_many({'x': 1}, {'x': 3})
 

Read

Query the database find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False) . The filter argument is a prototype document that all results must match.

>>> result = col.find({'x': 1})
 

Get a single document from the database find_one(filter=None)

>>> result = col.find_one()
 

Query With Projection

query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)
 

Delete

Delete a single document matching the filter delete_one(filter)

>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1
 

Delete one or more documents matching the filter delete_many(filter)

>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3
 

PyMongo also provides find_one_and_delete() , find_one_and_update() and find_one_and_replace() functionality.

Hello, World

PyMongo is a native Python driver for MongoDB.

Install PyMongo

pip install pymongo
 

Create a connection

Use MongoClient to create a connection. MongoClient defaults to MongoDB instance running on localhost:27017 if not specified.

from pymongo import MongoClient
client = MongoClient() 
 

Access Database Objects

PyMongo's Database class represents database construct in MongoDB. Databases hold groups of logically related collections.

db = client.mydb
 

Access Collection Objects

PyMongo's Collection class represents collection construct in MongoDB. Collections hold groups of related documents.

col = db.mycollection
 

MongoDB creates new databases and collections implicitly upon first use.

Installation or Setup

Detailed instructions on getting pymongo set up or installed.

  • Installing with Pip

    • To install pymongo for the first time:

      pip install pymongo

    • Installing a specific version of pymongo:

      Where X.X.X is the version to be installed

      pip install pymongo==X.X.X

    • Upgrading existing pymongo:

      pip install --upgrade pymongo

  • Installing with easy_install

    • To install pymongo for the first time:

      python -m easy_install pymongo

    • Upgrading existing pymongo:

      python -m easy_install -U pymongo



Got any PyMongo Question?