A quick tutorial to demonstrate Python 3 with MongoDB
Installing Python 3 and PyMongo
Download and install the latest version of Python 3 (version 3.3 at time of writing) from http://www.python.org/download/releases/
Next we need to download the installer for Distribute for Python from http://python-distribute.org/distribute_setup.py . Now open an command prompt by opening the start menu
and typing cmd then press enter. Change to the folder where you downloaded Distribute (eg. cd c:\users\username\downloads) and run
python distribute_setup.py
This will download and install distribute to your Python 3 folder.
Now keep the command prompt open and change to the scripts folder inside the Python 3 folder (eg. cd c:\python33\scripts\) and run
easy_install pymongo
Once this completes, PyMongo is installed. We can test this by opening python in a command prompt and typing
import pymongo
If no errors occur then everything went ok and we can start using pymongo to work with MongoDB
Using PyMongo
We need to make a connection to work with a MongoDB database
from pymongo import Connection connection=Connection() or connection=Connection('ip','port') if using a remote host
Next we need to select the database to use.
database=connection['mydatabase']
We don’t have to create databases or collections, if they don’t exists they will be created.
mycollection=database.entries
‘entries’ is a collection (similar to a table in a RDBMS) and will be created if needed.
Inserting Data in MongoDB
We store data in MongoDB using documents which are defined in Key Value pairs in PyMongo
post1={"title":"My first post","details":"This is my first entries on PyMongo"}
Then we insert the document into a collection
mycollection.insert(post1)
Now we’ll make a second document with a different set of columns.
post2={"title":"My second post","date":"05/11/2012","author":"Paul"} mycollection.insert(post2)
We don’t have to use any of the same data names but it’s better to keep the documents some what similar in the same collection.
Retrieving one document
We use find({key:value}) to find a single document or we only want to get back the first document matching the condition.
print(mycollection.find_one({"title":"My second post"}))
This should return (ObjectId is unique to each document and assigned automatically)
{'title': 'My second post', 'date': '05/11/2012', '_id': ObjectId('509837c62fc1c02c91056697'), 'author': 'Paul'}
Retrieving all documents
for entry in mycollection.find(): print(entry)
We can also filter the results like find_one()
for entry in mycollection.find("title":"My first post"): print(entry)
In the next tutorial, I’ll show how to update documents, delete documents and indexes