Go to file
Bernie Hackett 294c695dab Merge pull request #76 from ajdavis/bamboo-fixes
See if safe=True will fix intermittent failures in test_insert_find_one
2011-12-20 11:04:51 -08:00
bson Revert "Ensures UTC stays a singleton" 2011-12-20 10:48:47 -08:00
doc Add Ross Lawley to contributors. 2011-12-20 10:58:56 -08:00
gridfs Guard against PHP-237 - PYTHON-290 2011-11-11 15:49:52 -08:00
pymongo Fix exception handling PYTHON-294 2011-12-18 13:25:08 -08:00
test Merge pull request #76 from ajdavis/bamboo-fixes 2011-12-20 11:04:51 -08:00
tools PEP8 cleanups. 2011-04-06 14:57:17 -07:00
.gitignore API doc generation with Sphinx 2009-11-12 16:46:49 -05:00
ez_setup.py No setuptools-0.6c9 for python2.7 on PyPI. 2011-03-21 17:29:35 -07:00
LICENSE include root LICENSE file in addition to individual headers 2009-06-22 10:20:44 -04:00
MANIFEST.in Fix some build/dist warnings. 2011-03-21 14:47:10 -07:00
README.rst Make myself maintainer. 2011-03-18 09:41:48 -07:00
RELEASE.rst Update Windows testing directions for Python2(4|5) 2011-05-04 17:46:30 -07:00
setup.cfg Added setup.cfg to configure nosetests to output xunit test results 2011-03-29 09:11:33 -04:00
setup.py require nose for running test suite 2011-10-24 18:20:12 -04: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
:Maintainer: Bernie Hackett <bernie@10gen.com>

About
=====

The PyMongo distribution contains tools for interacting with MongoDB
database from Python.  The ``bson`` package is an implementation of
the `BSON format <http://bsonspec.org>`_ for Python. The ``pymongo``
package is a native Python driver for MongoDB. The ``gridfs`` package
is a `gridfs
<http://www.mongodb.org/display/DOCS/GridFS+Specification>`_
implementation on top of ``pymongo``.

Issues / Questions / Feedback
=============================

Any issues with, questions about, or feedback for PyMongo should be
sent to the mongodb-user list on Google Groups. For confirmed issues
or feature requests, open a case on `jira
<http://jira.mongodb.org>`_. Please do not e-mail any of the PyMongo
developers directly with issues or questions - you're more likely to
get an answer on the list.

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 is supported and tested on Python 2.x, where
x >= 4. PyMongo versions <= 1.3 also supported Python 2.3, but that is
no longer supported. If you need to use Python 2.3 please contact us.

Additional dependencies are:

- (to generate documentation) sphinx_
- (to auto-discover tests) `nose <http://somethingaboutorange.com/mrl/projects/nose/>`_

Examples
========
Here's a basic example (for more see the *examples* section of the docs):

>>> 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('4aba15ebe23f6b53b0000000')}
>>> 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 sphinx_ installed to generate the
documentation. Documentation can be generated by running **python
setup.py doc**. Generated documentation can be found in the
*doc/build/html/* 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.

.. _sphinx: http://sphinx.pocoo.org/