使用python驱动mongodb须要下载、安装PyMongo包python
pip install pymongo
pip install pymongo==2.6.3
升级:easy_install pymongo
升级:easy_install -U pymongo
安装完毕后,就能够在python shell或者python ide中进行试验,若是安装pymongo成功,那么下面的命令应该能够在python shell中运行:
>>> import pymongo
linux
#链接locahost上的mongodb,端口是默认端口,27017 from pymongo import MongoClient client = MongoClient
也能够手动指定host和port: mongodb
client = MongoClient("localhost", 27017) #或者 client = MongoClient("mongodb://localhost:27017/")
一个mongodb的实例中,能够有不少独立数据库。咱们能够经过下面的方式获取一个数据库的实例: shell
db = client.mydatabase
若是上面的方法不起做用,试一下下面的方法: 数据库
db = client['mydatabase']
所谓数据集就是存储再mongodb中的一堆文档,这里能够简单的理解成关系数据库中的表(table),下面的方法获取一个数据集: json
collection = db.mycollection #或者 collection = db[mycollection]
须要注意的是,无论是获取数据库、仍是数据集实例,mongodb其实没有进行任何操做,只有当真正的文档insert进去的时候,才会真正建立数据库和数据集。ide
Mongodb中的数据是以json风格的文档存在的。在PyMongo中,咱们使用dictionaries表明documents。下面的一段文档(dictionary),能够看做是一篇博文的简介: post
import datatime post = { "auther" : "Mike", "text" : "My First blog post", "tags" : ["mongodb", "python", "pymongo"], "date" : datetime.datetime.utcnow() }
Document能够包含python语句,如上面的datetime.datetime,执行时,会自动进行转化。spa
使用insert()方法进行插入: code
posts = db.posts post_id = posts.insert(post) print post_id
当一篇Document被插入到mongodb中,若是document中没有指定"_id",mongodb会自动为该document添加惟一的"_id"。这个"_id"在该数据集中是唯一的。insert()方法返回值就是这个id,更多关于id的信息,点击documentation on _id。
插入完成后,咱们能够经过下面的语句列出数据库中的数据集:
db.collection_names()
结果以下: [u'system.indexs', u'posts'] system.indexs 这个数据集是mongodb本身建立的内部数据集。
monbodb中find_one()
方法,是最基本的查找方法。该方法返回符合条件的一篇document(若是没有符合条件的,返回None)。当数据集中只有一篇符合条件的文档,或者咱们只想看第一篇文档的时候,find_one()就有颇有用了。
posts.find_one()
返回结果:
{u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}
咱们也能够经过_id来进行检索,在这里_id是ObjectId: