官方文档非常重要
http://api.mongodb.org/python/1.11/
http://www.mongodb.org/
这里我们是安装 pymongo
$easy_install pymongo 1、安装easy_install工具,它的作用类似于Php中的pear,或者Ruby中的gem,或者Perl中的cpan。 2、使用快捷的方法是使用ez_setup.py脚本: #wget -q http://peak.telecommunity.com/dist/ez_setup.py #python ez_setup.py 实例:比如说要安装Python的MySQL支持,可以执行如下命令,系统会自动在pypi网站列表里查找相关软件包: easy_install MySQL-python 这里我们是安装 pymongo easy_install pymongo 如果想删除通过easy_install安装的软件包,比如说:MySQL-python,可以执行命令: easy_install -m MySQL-python
一个例子
#coding=utf-8 from pymongo import Connection conn = Connection("localhost") db = conn.foo test = {"id":1, "novle":"测试一下"} db.foo.save(test) cursor = db.foo.find() for i in cursor: print i
带有权限认证的例子
#coding=utf-8 from pymongo import Connection,database conn = Connection("localhost") db = database.Database(conn,"foo") r = db.authenticate("test","123") print r cursor = db.foo.find() print cursor for i in cursor: print i
输出:
!python simple.py True <pymongo.cursor.Cursor object at 0x802858f90> {u'_id': ObjectId('4ee9a3aa283b6db0dc000000'), u'id': 1, u'novle': u'\u6d4b\u8bd5\u4e00\u4e0b'}
Django操作NOSQL(MongoDB)数据库
http://dmyz.org/archives/251
Django用mongodb入门例子
http://artori.us/use-mongodb-with-django/
安装这个 mongoengine 必须的
sudo easy_install mongoengine Searching for mongoengine Reading http://pypi.python.org/simple/mongoengine/ Reading http://hmarr.com/mongoengine/ Best match: mongoengine 0.5.2 Downloading http://pypi.python.org/packages/source/m/mongoengine/mongoengine-0.5.2.tar.gz#md5=3d7becee075cf3a3d2a88c85dd42b053 Processing mongoengine-0.5.2.tar.gz Running mongoengine-0.5.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-LUDBKj/mongoengine-0.5.2/egg-dist-tmp-Dpom4g 0.5.2 no previously-included directories found matching 'docs/_build' zip_safe flag not set; analyzing archive contents... Adding mongoengine 0.5.2 to easy-install.pth file Installed /usr/local/lib/python2.6/site-packages/mongoengine-0.5.2-py2.6.egg Processing dependencies for mongoengine Finished processing dependencies for mongoengine
创建一个 Django项目来测试
guanyu/branches/lidong/mongodb-tests]$ django-admin.py startproject mongodbtest cd mongodbtest $ python manage.py startapp helloworld
编辑3个文件
*urls.py
*helloworld/models.py
*helloworld/views.py
urls.py
(r'^$','mongodbtest.helloworld.views.index'),
helloworld/models.py
#from django.db import models from mongoengine import * connect('test') class PhoneModel(Document): name = StringField(required=True) phone = StringField(max_length=50)
helloworld/views.py
from django.http import HttpResponse from models import PhoneModel def index(request): entry = PhoneModel(name='lidong') entry.phone = '13410320008' entry.save() resp = "hello %s , phone :%s" %(entry.name, entry.phone) return HttpResponse(resp)
检查数据库中的数据
$python >>> from pymongo import Connection >>> conn = Connection("localhost") >>> db = conn.test >>> db.collection_names() [u'system.indexes', u'phone_model'] >>> collect = db['phone_model'] >>> collect.find_one() {u'_types': [u'PhoneModel'], u'phone': u'13410320008', u'_id': ObjectId('4eeae3a5283b6d11c1000000'), u'name': u'lidong', u'_cls': u'PhoneModel'} >>>
该项目测试代码
[lidong@lidong-office ~]$ python Python 2.6.6 (r266:84292, Dec 2 2010, 11:12:27) [GCC 4.2.1 20070719 [FreeBSD]] on freebsd8 Type "help", "copyright", "credits" or "license" for more information. >>> from pymongo import Connection >>> connection = Connection('localhost') >>> testdb = connection.test >>> testdb.collection_names() [u'system.indexes', u'phone_model'] >>> phone_collection = testdb.phone_model >>> record1 = phone_collection.find_one() >>> record1 {u'_types': [u'PhoneModel'], u'phone': u'13410320008', u'_id': ObjectId('4eeae3a5283b6d11c1000000'), u'name': u'lidong', u'_cls': u'PhoneModel'} >>> phone = record1.phone Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'dict' object has no attribute 'phone' >>> phone = record1[phone] Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'phone' is not defined >>> phone = record1['phone'] >>> phone u'13410320008' >>>