Every repository with this icon (
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Mon Jun 08 13:49:54 -0700 2009 | |
| |
LICENSE | Mon Jun 22 07:20:44 -0700 2009 | |
| |
MANIFEST.in | Thu Jul 16 08:33:35 -0700 2009 | |
| |
README.rst | Tue Oct 13 07:08:16 -0700 2009 | |
| |
debian/ | Wed Sep 23 12:53:08 -0700 2009 | |
| |
epydoc-config | Tue Apr 14 13:28:21 -0700 2009 | |
| |
examples/ | Wed Sep 02 14:38:35 -0700 2009 | |
| |
ez_setup.py | Wed Sep 23 08:43:53 -0700 2009 | |
| |
gridfs/ | Tue Sep 22 14:20:50 -0700 2009 | |
| |
pymongo/ | ||
| |
setup.py | Wed Sep 16 08:30:31 -0700 2009 | |
| |
test/ | ||
| |
tools/ | Wed Oct 21 14:31:51 -0700 2009 |
PyMongo
| Info: | See the mongo site for more information. See github for the latest source. |
|---|---|
| Author: | Mike Dirolf <mike@10gen.com> |
About
The PyMongo distribution contains tools for interacting with the Mongo database from Python. The pymongo package is a native Python driver for the Mongo database. The gridfs package is a gridfs implementation on top of pymongo.
Installation
If you have setuptools installed you should be able to do easy_install pymongo to install PyMongo. Otherwise you can download the project source and do python setup.py install to install.
Dependencies
The PyMongo distribution has been tested on Python 2.x, where x >= 3. On Python 2.3 the optional C extension will not be built. This will negatively affect performance, but everything should still work.
Additional dependencies are:
- ElementTree (this is included with Python >= 2.5)
- (to generate documentation) epydoc
- (to auto-discover tests) nose
Examples
Here's a basic example (for more see the examples/ directory):
>>> import pymongo
>>> connection = pymongo.Connection("localhost", 27017)
>>> db = connection.test
>>> db.name()
u'test'
>>> db.my_collection
Collection(Database(Connection('localhost', 27017), u'test'), u'my_collection')
>>> db.my_collection.save({"x": 10})
ObjectId('4aba15ebe23f6b53b0000000')
>>> db.my_collection.save({"x": 8})
ObjectId('4aba160ee23f6b543e000000')
>>> db.my_collection.save({"x": 11})
ObjectId('4aba160ee23f6b543e000002')
>>> db.my_collection.find_one()
{u'x': 10, u'_id': ObjectId('4aba160ee23f6b543e000002')}
>>> for item in db.my_collection.find():
... print item["x"]
...
10
8
11
>>> db.my_collection.create_index("x")
u'x_1'
>>> for item in db.my_collection.find().sort("x", pymongo.ASCENDING):
... print item["x"]
...
8
10
11
>>> [item["x"] for item in db.my_collection.find().limit(2).skip(1)]
[8, 11]
Documentation
You will need epydoc installed to generate the documentation. Documentation can be generated by running python setup.py doc. Generated documentation can be found in the doc/ directory.
Testing
The easiest way to run the tests is to install nose (easy_install nose) and run nosetests or python setup.py test in the root of the distribution. Tests are located in the test/ directory.
Credits
Thanks to (in no particular order) (if you belong here and are missing please let us know):
- moe at mbox dot bz:
- Turn off nagle
- Michael Stephens (mikejs):
- Seek and tell for read mode GridFile
- Joakim Sernbrant (serbaut):
- Fix decref bug in tuple encoder
- Hex __repr__ and __str__ for ObjectId
- Performance optimizations for writing large files to GridFS
- Some updates to the README
- Fix for ObjectId + multiprocessing
- Alexander Artemenko (svetlyak40wt):
- Fix spurious errors in thread test
- Mathias Stearn (RedBeard0531):
- Add support for finalize in group()
- Fajran Iman Rusadi (fajran):
- Add Debian control files
- Brad Clements (bkc):
- A fix for Python 2.3 compatability
- Andrey Fedorov (andreyf)
- Added __hash__ methods to DBRef and ObjectId








