Go to file
behackett 96b133cb0c Python 3 setup.py changes PYTHON-84
1. Switch from setuptools to distribute
2. Make setup.py PY3 compatible.
3. Use 2to3 for PY3 builds.
4. Make "test" and "nosetests" work in PY3
5. Only write setup.cfg when needed.
6. git ignore setup.cfg.

Traditional setuptools does not support PY3.
2012-03-28 19:10:54 -07:00
bson Minor: style. 2012-03-27 11:29:20 -07:00
doc Typo in start/end_request example doc 2012-03-20 13:15:27 -03:00
gridfs Python 3 gridfs package changes PYTHON-84 2012-03-22 14:42:34 -07:00
pymongo Merge pull request #115 from ajdavis/pool-improvements-10 2012-03-27 15:04:41 -07:00
test Python 3 unittest changes PYTHON-84. 2012-03-28 11:53:47 -07:00
tools PYTHON-305 updated replica pair test. 2012-02-09 08:50:20 -08:00
.gitignore Python 3 setup.py changes PYTHON-84 2012-03-28 19:10:54 -07:00
distribute_setup.py Python 3 setup.py changes PYTHON-84 2012-03-28 19:10:54 -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 Fix README example. 2011-12-28 22:20:07 -08:00
RELEASE.rst Update Windows testing directions for Python2(4|5) 2011-05-04 17:46:30 -07:00
setup.py Python 3 setup.py changes PYTHON-84 2012-03-28 19:10:54 -07: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/