pymongo教程(1)——概述

MongoDB是使用C++开发的一款文档型数据库,PyMongo是MongoDB的Python驱动。

安装

使用pip安装

$ [sudo] pip install pymongo

如果要安装特定的版本则:

$ [sudo] pip install pymongo==2.6.3

通过源代码安装

$ git clone git://github.com/mongodb/mongo-python-driver.git pymongo
$ cd pymongo/
$ [sudo] python setup.py install

注意:使用C的扩展会对性能提升会有帮助。但是在uwsgi中会出现警告,则可以选择只安装python驱动,而不安装C扩展。

$ [sudo] python setup.py --no_ext install

注意: 如果你使用的是Python3的话,PyMongo只支持 Python 3.1以上的版本。

使用

首先启动 mongodb 服务器:

$ mongod

连接服务器

然后执行python程序连接服务器:

from pymongo import MongoClient
client = MongoClient()

以上会连接到默认的主机和端口(localhost:27017),也可以指定主机名和端口:

client = MongoClient('localhost', 27017)

或者:

client = MongoClient('mongodb://localhost:27017/')

访问数据库

db = client.test_database

如果数据库的名称不能直接使用属性名的风格访问,那么就需要使用字典的风格:

db = client['test-database']

访问数据集合

与访问数据库相似:

collection = db.test_collection
collection = db['test-collection']

插入数据

在MongoDB中数据是以类似JSON格式进行保存的,在PyMongo中则是使用字典风格。然后可以数据集合对象的 insert() 方法进行插入数据。

import datetime
post = {"author": "Mike",
        "text": "My first blog post!",
        "tags": ["mongodb", "python", "pymongo"],
        "date": datetime.datetime.utcnow()}
post_id = db.posts.insert(post)

查询数据

可以数据集合对象的 find() 方法进行查询数据。

db.posts.find({"author": "Mike"})
db.posts.find_one({"author": "Mike"})