當前位置:
首頁 > 最新 > MongoDB的簡單介紹(二)

MongoDB的簡單介紹(二)

標題:

簡單使用MongoDB操作數據

修改數據

數據更新

局部更新

更新不存在的數據

更新多條數據

數據刪除

安裝pymongo與連接MongoDB

在Pyhton中操作MongoDB

插入數據

更新數據

刪除數據

刪除集合

刪除文檔

查找數據

find與cursor

查詢特定鍵

排序

切片

正則查詢

繼續來接著我們上次關於NoSql類資料庫——MongoDB的介紹,這次我們主要來簡單的討論一下在MongoDB中如何更新數據(修改數據),刪除數據,以及如何通過Python調用MongoDB。

| 1.簡單使用MongoDB操作數據

| a.更新數據

| i.數據更新

更新集合中的數據使用命令,它接收兩個參數,前者為條件,後者為進行更新的操作:

如上例,將文檔中有的改成。

| ii.局部更新

有些時候,我們需要對文檔進行局部更新,MongoDB中,默認一般情況的修改會對整個文檔造成影響

例如上面的例子,我們只想對進行修改使得變為,但如果直接使用會使得整個文檔被修改的只剩下。

這個時候,就需要使用來對文檔進行局部更新

| iii.更新不存在的數據

有時候,我們需要直接更新一條資料庫中並不存在的數據,這個時候,僅僅用原來的的使用方法是達不到效果的,我們需要在括弧裡面加上第三個參數(Bool)來實現我們想要的效果

| iv.更新多條數據

在使用的時候,默認只更新被查找到的第一條數據,這是為了防止用戶進行誤操作。

發現只有第一個文檔被更新了。

要同時更新多條數據,就需要使用的第四個也是最後一個參數(Bool)。

這裡的更新方式通常都是使用局部更新的方式,也是為了防止誤操作。

| b.數據刪除

要刪除集合中的數據,我們使用方法,它接收一個參數,作為查找刪除數據的條件,該參數不能為空。如果想清除集合裡面的所有數據,可以直接時候用廢除集合。

但也有時候我們只想刪除被找到的第一條數據,這個時候可以利用的第二個參數

| 2.安裝pymongo與連接MongoDB

接下來我們介紹如何在Python中使用MongoDB。

要通過Pyhton使用MongoDB,我們首先需要下載Python用於操作MongoDB的庫pymongo

然後就可以在python中導入這個庫了,不過通常我們只是導入它的驅動:

導入之後,我們在Python中通過下面一段代碼獲取MongoDB的操作對象:

獲得集合操作對象之後,我們就可以通過這個集合操作對象對資料庫的集合進行操作,以上例為例,就是對名為MongoDB的資料庫「test」中名為「useraction」的集合進行操作。

| 3.在Python中操作MongoDB

| a.插入數據

往集合插入數據的方法有兩種,分別是和,對應的就是MongoDB Shell裡面的和。

它們之間的區別就是,在插入和原來信息重複的數據對象的時候,會報錯,而則會將原來的數據對象進行更新。當然,這裡的重複指的是唯一索引的重複,類似於「_id」的重複。

用shell查看,發現插入成功

在python中的方法語法為

可以發現,python中對MongoDB插入數據的方式與MongoDB Shell沒有太多區別。

| b.更新數據

更新數據使用方法,語法格式如下:

criteria: 需要被更新的條件表達式

objNew: 更新表達式

upsert: 如目標記錄不存在,是否插入新文檔。

multi: 是否更新多個文檔。

示例:

發現操作符的使用方式也與shell沒有太多區別。

| c.刪除數據

| i.刪除集合

要刪除一個集合,有多種方法,方法一是用:

這個地方的指的是這個集合在MongoDB資料庫裡面的名字,例如我們上面的例子,它的名字就是「useraction」,而不是「collection_useraction」。

另外一個方法是用:

指的就是python中該集合的操作對象,如上例,就是「collection_useraction」,而不是集合名字「useraction」

| ii.刪除文檔

刪除文檔使用方法,同樣有兩種方式調用,與上文中刪除集合類似,所以這裡只講一種方法:

第一個參數表示要刪除的文檔的搜索條件或者該文檔的id,默認為None。

multi表示是否刪除多個,為False的時候一次只刪除一個。

當括弧為空的時候會刪除集合內所有文檔,這一點與shell不同。

表示刪除所有集合中「x」值為1的文檔。

| d.查找數據

| i.find與cursor

我們先假設我們在集合中插入了100條信息

在Python中查找用的方法同樣也是,使用方式也與shell相同,當我們需要查找並遍歷查找結果的時候,可以用這樣的方式:

這是因為語句返回了一個可供迭代的對象,用方法可以看到這個對象的類型:

這個對象同時還支持我們直接用索引訪問:

並且還支持一些shell的方法:

並且可以對它進行深拷貝:

若是想一次只查找一條信息,可以使用方法。

| ii.查詢特定鍵

當我們只想查詢指定的關鍵字的值的時候,就需要用到的第二個參數「projection」:

| iii.排序

排序用的同樣是方法,但是使用方式與shell略有不同:

「KEY」指作為排序基準的關鍵字的名字,則表示排序的方法,有兩個選項,分別是(升序,可用1代替)和(降序,可用-1代替)對象,示例:

也可以直接使用方法中的參數:

| iv.切片

在shell中我們使用與方法來對查詢結果進行切片,python中一樣可以:

skip與limit同樣支持參數寫法。

不僅如此,我們還可以對查詢結果使用索引切片

| v.正則查詢

在查詢文本的時候,除了MongoDB原有的文本查詢格式,我們還可以使用正則表達式:

這次我們就先講到這裡,下次我們將會簡單的介紹一點關於MongoDB的核心內容——MongoDB的索引的使用。

AI遇見機器學習

mltoai

一個有態度的知識分享號,長按識別左側二維碼,關注我們吧!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI遇見機器學習 的精彩文章:

TAG:AI遇見機器學習 |