使用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: