Go to file
Mike Dirolf fc3ef96800 remove Mongo class.
this has been deprecated for some time, in favor of creating a Connection
instance and getting a Database instance from the connection. i'm removing
this before the release because i'd rather not have people get confused as
to why it is lying around.

the only real useful functionality left here that isn't recreated elsewhere
is auto-ref and auto-deref. this will probably get added back to the driver
as a SONManipulator at some point.
2009-02-09 10:10:03 -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 remove Mongo class. 2009-02-09 10:10:03 -05:00
test remove Mongo class. 2009-02-09 10:10:03 -05:00
tools more accurate benchmarking by adding _to_dict helper 2009-02-05 15:43:43 -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
MANIFEST.in add MANIFEST file to include additional files in source distribution (this only happens automatically for svn and cvs). only use ez_setup if necessary. bump version 2009-02-06 10:00:34 -05:00
README.rst update README - add nose as dependency and note that we have tested on 2.5 and 2.6 2009-02-06 17:03:20 -05:00
setup.py bumping 2009-02-06 16:09:31 -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
============
The PyMongo distribution has been tested on both Python 2.5 and Python 2.6. Additional dependencies are:

- `ElementTree <http://effbot.org/zone/element-index.htm>`_
- (to generate documentation) `epydoc <http://epydoc.sourceforge.net/>`_
- (to auto-discover tests) `nose <http://somethingaboutorange.com/mrl/projects/nose/>`_

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.