Python操作MongoDB

很久沒有寫博客了,今天早上簡單的複習了下mongdb,在之前的工作中一直用的是mysql,沒有用過mongdb,對於大型的爬蟲項目很多大佬都建議用mongdb。我們公司的Java爬蟲用mongdb。對於python而言操作數據庫是非常簡單的。

早上起來沒什麼事情就簡單了找了一篇博客,一看是崔大佬寫的。

https://juejin.im/post/5addbd0e518825671f2f62ee#heading-8

上面是博客地址。

然後我根據崔大佬的博客學習了下。也加深了下對mongdb的理解和用途。

MongoDB是由C++語言編寫的非關係型數據庫,是一個基於分佈式文件存儲的開源數據庫系統,其內容存儲形式類似JSON對象,它的字段值可以包含其他文檔、數組及文檔數組,非常靈活。我們就來看看Python 3下MongoDB的存儲操作

1. 準備工作

在開始之前,請確保已經安裝好了MongoDB並啓動了其服務,並且安裝好了Python的PyMongo庫,我是在linux 上安裝,在網上找的教程。

2. 連接MongoDB

連接MongoDB時,我們需要使用PyMongo庫裏面的MongoClient。一般來說,傳入MongoDB的IP及端口即可,其中第一個參數爲地址host,第二個參數爲端口port(如果不給它傳遞參數,默認是27017)

from pymongo import MongoClient
client = MongoClient('localhost',27017)

還可這樣寫


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

​

3. 指定數據庫

像mysql 指定數據庫需要在上步完成。

MongoDB中可以建立多個數據庫,接下來我們需要指定操作哪個數據庫。這裏我們以abc數據庫爲例來說明,下一步需要在程序中指定要使用的數據庫:

db = client.abc

也可以這樣

db = client['abc']

如果你沒有這個數據庫,他會自己創建,這一點我非常喜歡。

 

4. 指定集合

MongoDB的每個數據庫又包含許多集合(collection),它們類似於關係型數據庫中的表。

下一步需要指定要操作的集合,這裏指定一個集合名稱爲students。與指定數據庫類似,指定集合也有兩種方式:

collection = db.students
#或者
collection = db['students']

這樣我們便聲明瞭一個Collection對象

5. 插入數據

接下來,便可以插入數據了。對於students這個集合,新建一條學生數據,這條數據以字典形式表示

student = {
    'id': '20170101',
    'name': 'Jordan',
    'age': 20,
    'gender': 'male'
}
result = collection.insert(student)

直接調用collectioninsert()方法即可插入數據。

在MongoDB中,每條數據其實都有一個_id屬性來唯一標識。如果沒有顯式指明該屬性,MongoDB會自動產生一個ObjectId類型的_id屬性。insert()方法會在執行後返回_id值。

實際上,在PyMongo 3.x版本中,官方已經不推薦使用insert()方法了。當然,繼續使用也沒有什麼問題。官方推薦使用insert_one()insert_many()方法來分別插入單條記錄和多條記錄,示例如下

student = {
    'id': '20170101',
    'name': 'Jordan',
    'age': 20,
    'gender': 'male'
}

result = collection.insert_one(student)
print(result)
print(result.inserted_id)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章