真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中怎么操作MongoDB數(shù)據(jù)庫

這期內容當中小編將會給大家?guī)碛嘘PPython中怎么操作MongoDB數(shù)據(jù)庫,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、重慶網(wǎng)站建設公司、微信開發(fā)、小程序開發(fā)、集團成都企業(yè)網(wǎng)站定制等服務項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都三輪攪拌車等眾多領域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致表揚!

一、連接服務器

連接服務器需要提供一個地址和接口

import pymongo client = pymongo.MongoClient(host='localhost', 27017) # 地址和端口也可以用一個字符串完成 client = pymongo.MongoClient('mongodb://localhost:27017/')

27017 是默認端口。如果設置過密碼進行連接就不能簡單使用上面的代碼了,需要在代碼中帶上密碼:

import pymongo client = pymongo.MongoClient(host='localhost', 27017) auth = mongo_client.admin auth.authenticate('用戶名', '密碼')

連接服務器可以用下面的代碼判斷是否成功:

print(client.server_info())

二、獲取數(shù)據(jù)庫

獲取數(shù)據(jù)庫有以下兩種表述方法(以數(shù)據(jù)庫 data 為例):

# 方法一 db = client['data'] # 方法二 db = client.data

另外需要說明,MongoDB不需要提前創(chuàng)建好數(shù)據(jù)庫,而是直接使用,如果發(fā)現(xiàn)沒有則自動創(chuàng)建一個 testdb 的數(shù)據(jù)庫:

db = client.testdb

三、獲取集合

非關系型數(shù)據(jù)庫中的集合類似于關系型數(shù)據(jù)庫中的表獲取集合與獲取數(shù)據(jù)庫類似,同樣有兩種方法(以集合 practice 為例):

collection = db['practice'] # 方法二 collection = db.practice

四、插入數(shù)據(jù)

下面的操作進行前默認已經(jīng)通過代碼獲取到了 practice 集合:

import pymongo client = pymongo.MongoClient(host='localhost', 27017) db = client.data collection = db.practice

4.1 插入單條數(shù)據(jù)

數(shù)據(jù)形式是字典,可以通過 insert_one 完成單個數(shù)據(jù)的寫入:

data = {     'name' : 'Chenxi',     'text' : 'Hello World',     'tags' : ['a', 'b', 'c'] } collection.insert_one(data)

在MongoDB中,每條數(shù)據(jù)都有_id屬性來唯一標識??梢暂敵龇祷氐膇d確認數(shù)據(jù)情況:

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

4.2 插入多條數(shù)據(jù)

如果有多條數(shù)據(jù),每條數(shù)據(jù)形式依然是字典,但需要組合成字典列表的形式后用 insert_many() 完成寫入:

data1 = {     'name' : 'Chenxi',     'text' : 'Hello World',     'tags' : ['a', 'b', 'c'] } data2 = {     'name' : 'Zaoqi',     'text' : 'Hello World',     'tags' : ['a', 'b', 'c'] } collection.insert_many([data1, data2])

五、刪除數(shù)據(jù)

5.1 刪除單條數(shù)據(jù)

刪除一條數(shù)據(jù)。若刪除條件相同匹配到多條數(shù)據(jù),默認刪除第一條。如上例中插入的兩條數(shù)據(jù)均符合 {'text' : 'Hello  World'} 那么通過 delete_one 會刪除第一條數(shù)據(jù),保留 {'name' : 'Zaoqi'} 這條數(shù)據(jù):

collection.delete_one({'text' : 'Hello World'})

5.2 刪除多條數(shù)據(jù)

刪除滿足條件的所有數(shù)據(jù)。如上例中插入的兩條數(shù)據(jù)均符合 {'text' : 'Hello World'} 那么通過 delete_many  會刪除全部兩條數(shù)據(jù):

collection.delete_many({'text' : 'Hello World'})

六、更新數(shù)據(jù)

6.1 更新單條數(shù)據(jù)

類似刪除單條數(shù)據(jù),只會更新滿足條件的第一條數(shù)據(jù)。代碼為  update_one(filter,update,upsert=False),其中第一個參數(shù) filter為更新的條件,第二個參數(shù) update  為更新的內容,第三個參數(shù) upsert 默認 False, 若為 True 則當更新條件沒找到時會插入更新的內容

data3 = {     'name': 'Xiaoming',     'text': 'Goodbye World',     'tags': [1, 2, 3] } update_condition = {'name' : 'Chenxi'}  collection.update_one(update_condition, {'$set' : data3})

6.2 更新多條數(shù)據(jù)

有了上面刪除和插入多條數(shù)據(jù)的認識,就很好理解更新多條數(shù)據(jù)的邏輯了,同理也是更新符合條件的全部數(shù)據(jù)。

data3 = {     'name': 'Xiaoming',     'text': 'Goodbye World',     'tags': [1, 2, 3] } update_condition = {'text' : 'Hello World'}  collection.update_many(update_condition, {'$set' : data3})

七、查詢數(shù)據(jù)

7.1 查詢單條數(shù)據(jù)

匹配第一條滿足的條件的結果,這條結果以字典形式返回,若沒有查詢到,則返回 None

find_result = collection.find_one({'text' : 'Hello World'}) print(find_result)

可以通過 projection 參數(shù)來指定需要查詢的字段:

find_result = collection.find_one({'text' : 'Hello World'}, projection= {'_id':False, 'name':True, 'tags':False}) print(find_result)

7.2 查詢多條數(shù)據(jù)

返回滿足條件的所有結果,返回后需要通過迭代獲取每個查詢結果,每個結果類型為字典。和之前的增、刪、改不類似,查詢多條為  find()

find_result = collection.find({'text' : 'Hello World'}) for i in find_result:     print(i)

7.3 查詢且刪除

代碼為  find_one_and_delete(filter,projection=None,sort=None,session=None,**kwargs),其中  sort為元祖列表類型,當查詢匹配到多條數(shù)據(jù)時,根據(jù)某個條件排序,函數(shù)返回時返回第一條數(shù)據(jù):

find_condition = {'text' : 'Hello World'} deleted_item = collection.find_one_and_delete(find_condition, sort= [('name', pymongo.DESCENDING)]) print(deleted_item)

查詢也可以通過 $ 限定查詢范圍,常用內容如下:

Python中怎么操作MongoDB數(shù)據(jù)庫

img

八、計數(shù)

要統(tǒng)計查詢結果有多少條數(shù)據(jù),可以調用 count() 方法。具體操作如下:

count = collection.find({'text' : 'Hello World'}).count() print(count)

九、排序

查詢中已經(jīng)看到 sort 可以作為參數(shù)發(fā)揮排序作用。實際上 sort 可以類似計數(shù)方法一樣直接跟在查詢的后面:

results = collection.find({'text' : 'Hello World'}).sort('name', pymongo.ASCENDING) print([result['name'] for result in results])

十、索引

10.1 創(chuàng)建索引

在插入數(shù)據(jù)時,已經(jīng)有一個 _id 索引了,但我們還可以自定義創(chuàng)建索引:

collection.create_index('name', unique= True)

10.2 獲取索引信息

可以利用 index_information 獲取索引介紹:

index_info = collection.index_information() print(index_info)

10.3 刪除索引

del_index = collection.drop_index(index_name)

上述就是小編為大家分享的Python中怎么操作MongoDB數(shù)據(jù)庫了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當前標題:Python中怎么操作MongoDB數(shù)據(jù)庫
網(wǎng)址分享:http://weahome.cn/article/pihish.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部