1. 程式人生 > >Python 連線MongoDB資料庫手札(PyMongo)

Python 連線MongoDB資料庫手札(PyMongo)

1 PyMango 安裝

如果還不知道怎麼安裝MongoDB可以先看這裡,包括如何啟動相應的服務
Ubuntu の MongoDB 安裝教程及簡單操作

要想在Python中使用MongoDB,需要安裝PyMongo,通過PyMongo 我們在Python中就可以連結MongoDB資料庫了,這裡我是使用了Pip來安裝的,如果還沒清楚Pip怎麼安裝的可以看看之前的博文

pip install pymongo

完成了這條指令之後,我們就可以在Python當中進行資料庫的連線操作了。

2 Python連結程式碼

在這裡我直接給出一個示例了,注意的是,Pymango可以直接把Python中dict型別的資料直接存入,也可以直接取出,是不是很方便?

#encoding:utf=8
import pymongo as pm
import json


class MongoOperator:
    def __init__(self, host, port, db_name, default_collection):
        '''
        設定mongodb的地址,埠以及預設訪問的集合,後續訪問中如果不指定collection,則訪問這個預設的
        :param host: 地址
        :param port: 埠
        :param db_name: 資料庫名字
        :param default_collection: 預設的集合
        '''
#建立資料庫連線 self.client = pm.MongoClient(host=host, port=port) #選擇相應的資料庫名稱 self.db = self.client.get_database(db_name) #設定預設的集合 self.collection = self.db.get_collection(default_collection) def insert(self, item, collection_name =None): ''' 插入資料,這裡的資料可以是一個,也可以是多個 :param item: 需要插入的資料 :param collection_name: 可選,需要訪問哪個集合 :return: '''
if collection_name != None: collection = self.db.get_collection(self.db) collection.insert(item) else: self.collection.insert(item) def find(self, expression =None, collection_name=None): ''' 進行簡單查詢,可以指定條件和集合 :param expression: 查詢條件,可以為空 :param collection_name: 集合名稱 :return: 所有結果 ''' if collection_name != None: collection = self.db.get_collection(self.db) if expression == None: return collection.find() else: return collection.find(expression) else: if expression == None: return self.collection.find() else: return self.collection.find(expression) def get_collection(self, collection_name=None): ''' 很多時候單純的查詢不能夠通過這個類封裝的方法執行,這時候就可以直接獲取到對應的collection進行操作 :param collection_name: 集合名稱 :return: collection ''' if collection_name == None: return self.collection else: return self.get_collection(collection_name) db = MongoOperator('10.0.0.39',27017,'test_db','test_collection') item = {} item['name'] = 'mebiuw' item['age'] = '23' db.insert(item) for item in db.find(): print(item)

3 其他

如果有其他我再補充,這篇主要是程式碼上的,上一篇主要是環境上的,遇到問題我會及時補充