## 導語
> + pymongo 是目前用的相對普遍一個python用來連接MongoDB的庫,是工作中各種基本需求都能滿足
> + 具體api可以參考 [pymongo API](https://api.mongodb.com/python/current/)
> + [pymongo github](https://github.com/mongodb/mongo-python-driver)
---
## 安裝 MongoDB
為了測試pyMongo連接mongodb,首先當然需要在centos下安裝mongo,詳細參考 [Centos下安裝MongoDB](http://blog.liuc.me/2015/10/10/Centos%E4%B8%8B%E5%AE%89%E8%A3%85MongoDB/)
## 安裝 pymongo
如果沒有pip, 建議先安裝,至于為啥要用pip你懂得
yum install python-pip
pip 安裝 pymongo
pip install pymongo
查看 pymongo是否安裝成功
root@pts/4 $ python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymongo
>>> pymongo.version
'3.2.2'
---
## 使用 pymongo
### 連接到 MongoDB
有兩種方式,等同
>>> client = pymongo.MongoClient('192.168.100.3', 27017)
>>> print client
MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True)
>>> client2 = pymongo.MongoClient('mongodb://192.168.100.3:27017/')
>>> print client2
MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True)
>>>
### 得到 db 和 collection
有時候在腳本中會把 db 和 collection 作為參數使用,可以參考第二種方式
直接鏈接
>>> db = client.report
>>> print db
Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report')
>>> collection = db.source_register
>>> print collection
Collection(Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report'), u'source_register')
>>>
參數鏈接, 這種形式又有兩種方法
## 定義參數
>>> pramadb = 'report'
>>> pramacoll = 'source_register'
## get db
>>> db2 = client[pramadb]
>>> db3 = client.get_database(pramadb)
>>> print db2
Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report')
>>> print db3
Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report')
>>>
## get collection
>>> coll2 = db2[pramacoll]
>>> coll3 = db3.get_collection(pramacoll)
>>> print coll2
Collection(Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report'), u'source_register')
>>> print coll3
Collection(Database(MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True), u'report'), u'source_register')
>>>
### 常規操作舉例
## insert or save
>>> mydict = {"name":"James", "age": 28}
>>> collection.save(mydict)
ObjectId('57fdf212bcd34f48c4fce15a')
## find
>>> collection.find({"name":"James"})[0]
{u'age': 28, u'_id': ObjectId('57fdf212bcd34f48c4fce15a'), u'name': u'James'}
>>>
^_^ ^_^ ^_^ 未完待續... ^_^ ^_^ ^_^