Go to file
2009-02-05 15:40:07 -05:00
examples just check for subclass of dict, not (SON, dict). SON is now a subclass of dict 2009-02-04 13:38:36 -05:00
gridfs write chunks before writing new file length 2009-02-05 15:09:55 -05:00
pymongo hide to_dicts as _to_dicts 2009-02-05 15:40:07 -05:00
test hide to_dicts as _to_dicts 2009-02-05 15:40:07 -05:00
tools hide to_dicts as _to_dicts 2009-02-05 15:40:07 -05:00
.gitignore ignore compiled c extensions 2009-02-02 13:47:19 -05:00
epydoc-config doc 2009-01-30 16:18:29 -05:00
ez_setup.py starting on a setup.py 2009-01-22 14:30:41 -05:00
README.rst move constants to pymongo root. update docs. add documentation for the pymongo module itself. 2009-01-30 14:54:50 -05:00
setup.py bump version 2009-02-05 09:08:26 -05:00

=======
PyMongo
=======
:Info: See `the mongo site <http://www.mongodb.org>`_ for more information. See `github <http://github.com/mongodb/mongo-python-driver/tree>`_ 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 <http://mongodb.onconfluence.com/display/DOCS/GridFS+Specification>`_
implementation on top of ``pymongo``.

Installation
============
If you have `setuptools <http://peak.telecommunity.com/DevCenter/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
============
- `ElementTree <http://effbot.org/zone/element-index.htm>`_
- (to generate documentation) `epydoc <http://epydoc.sourceforge.net/>`_

Examples
========
Here's a basic example (for more see the *examples/* directory):

>>> from pymongo.connection import Connection
>>> connection = 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('\x03\x1c\x06\x8d|\x9d}O\x8b\xaf!\xa0')
>>> db.my_collection.save({"x": 8})
ObjectId('\x18\x1f\xa4lOV&\x0bH\xf9%A')
>>> db.my_collection.save({"x": 11})
ObjectId('R\xa3\x85p\xc3m=\xe5\x0e*\x1d\xa7')
>>> db.my_collection.find_one()
SON([(u'x', 10), (u'_id',
ObjectId('\x03\x1c\x06\x8d|\x9d}O\x8b\xaf!\xa0'))])
>>> for item in db.my_collection.find():
...     print item["x"]
...
10
8
11
>>> from pymongo import ASCENDING
>>> db.my_collection.create_index("x", ASCENDING)
>>> for item in db.my_collection.find().sort("x", 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 <http://epydoc.sourceforge.net/>`_ installed to generate the documentation. Documentation can be generated by running **epydoc --config=epydoc-config**. Generated documentation can be found in the *doc/* directory.

Testing
=======
The easiest way to run the tests is to install `nose <http://somethingaboutorange.com/mrl/projects/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.