天天看點

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

總覽

  • 我們将讨論如何使用PyMongo庫查詢MongoDB資料庫。
  • 我們将介紹MongoDB中的基本聚合操作。

介紹

随着網際網路的全球普及,我們現在正在以前所未有的速度生成資料。因為執行任何類型的分析都需要我們從資料庫中收集/查詢必要的資料,是以選擇正确的工具來查詢資料變得至關重要。是以,我們無法想象使用SQL來處理如此大量的資料,因為每個查詢的成本都很高。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

使用PyMongo查詢MongoDB資料庫

這正是MongoDB的用武之地。MongoDB是一個非結構化資料庫,以文檔形式存儲資料。此外,MongoDB能夠非常高效地處理大量資料,并且是使用最廣泛的NoSQL資料庫,因為它提供了豐富的查詢語言以及對資料的靈活,快速通路。

在本文中,我們将看到有關如何使用PyMongo查詢MongoDB資料庫的多個示例。此外,我們将看到如何使用比較運算符和邏輯運算符,正規表達式以及聚合管道的基礎知識。

其中我們讨論了非結構化資料庫,安裝步驟和MongoDB基本操作的挑戰。是以,如果您是MongoDB的完整入門者,我建議您先閱讀該文章。

目錄

  1. 什麼是PyMongo?
  2. 安裝步驟
  3. 将資料插入資料庫
  4. 查詢資料庫
    1. 根據字段過濾
    2. 根據比較運算符進行過濾
    3. 基于邏輯運算符的過濾
    4. 常用表達
    5. 聚合管道

5.尾注

什麼是PyMongo?

PyMongo是一個Python庫,使我們能夠與MongoDB連接配接。此外,這是與MongoDB和Python一起使用的最推薦方法。

另外,我們選擇Python與MongoDB進行互動,因為它是資料分析忠最常用且功能最強大的語言之一。PyMongo允許我們使用類似于字典的文法來檢索資料。

安裝步驟

安裝PyMongo非常簡單明了。在這裡,我假設您已經安裝了Python 3和MongoDB。以下指令将幫助您安裝PyMongo:

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

将資料插入資料庫

現在讓我們進行設定,然後再使用PyMongo查詢MongoDB資料庫。首先,我們将資料插入資料庫。以下步驟将在此方面為您提供幫助-

  1. 導入庫并連接配接到mongo用戶端

    在計算機上啟動MongoDB伺服器。我假設它正在localhost:27017運作檔案。

    讓我們從導入一些我們将要使用的庫開始。預設情況下,MongoDB伺服器在本地計算機上的端口27017上運作。然後,我們将使用pymongo庫連接配接到MongoDB用戶端。

    然後擷取資料庫sample_db的資料庫執行個體。萬一它不存在,MongoDB将為您建立一個。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

從JSON檔案建立集合

我們将使用在多個城市營運的一家送餐公司的資料。此外,他們在這些城​​市設有各種配送中心,用于向其顧客發送餐單。

  1. weekly_demand:
  • id:每個文檔的唯一ID
  • 周:周号
  • center_id:配送中心的唯一ID
  • meal_id:膳食的唯一ID
  • checkout_price:最終價格,包括折扣,稅金和送貨費
  • base_price:餐的基本價格
  • emailer_for_promotion:發送電子郵件以促進進餐
  • homepage_featured:首頁提供的餐點
  • num_orders:(目标)訂單數

2.餐資訊:

    • 餐_id:餐的唯一ID
    • 類别:餐食類型(飲料/小吃/湯……)
    • 美食:美食(印度/意大利/…)

然後,我們将在sample_db資料庫中建立兩個集合:

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

3.将資料插入收藏夾

現在,我們擁有的資料為JSON格式。然後,我們将獲得集合的執行個體,讀取資料檔案,并使用insert_many函數插入資料。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

最後,在weekly_demand_collection中有456548個文檔,在飯食資訊集合中有51個文檔。現在,讓我們看一下每個集合中的一個文檔。

weekly_demand_collection

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

膳食資訊集

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

現在,我們的資料已準備就緒。讓我們繼續查詢該資料庫。

查詢資料庫

我們可以使用帶有查找功能的PyMonfo查詢MongoDB資料庫,以擷取滿足給定條件的所有結果,還可以使用find_one函數,該函數将僅傳回滿足條件的一個結果。

以下是find和find_one的文法:

your_collection.find({<>},{<>})
           

您可以使用以下過濾技術查詢資料庫-

  1. 根據字段過濾

    例如,您有數百個字段,而您隻想看到其中的幾個。您可以通過将所有必填字段名稱都設定為值1來實作此目的。例如,

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

另一方面,如果隻想從整個文檔中丢棄一些字段,則可以将字段名稱設定為等于0。是以,将僅排除那些字段。請注意,您不能使用1和0的組合來擷取字段。全部要麼為一,要麼全部為零。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

2.過濾條件

現在,在本節中,我們将在第一個大括号中提供一個條件,并在第二個中删除該字段。是以,它将傳回center_id等于55且meal_id等于1885的第一個文檔,并且還将丢棄字段_id和week。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

3.根據比較運算符進行過濾

以下是MongoDB中的9個比較運算符。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

以下是使用這些比較運算符的一些示例-

    1. 等于和不等于

      我們将找到center_id等于55且homepage_featured不等于0的所有文檔。由于我們将使用find函數,是以它将傳回該指令的遊标。此外,使用for循環周遊查詢結果。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

2.在清單中而不在清單中

例如,您需要将一個元素與多個元素比對。在這種情況下,我們可以使用$ in運算符,而不是多次使用$ eq運算符。我們将嘗試找出center_id為24或11的所有文檔。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

然後,我們找到所有在指定清單中不存在center_id的文檔。以下查詢将傳回center_id不是24也不是11的所有文檔。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

3.小于和大于

現在,讓我們查找center_id為55且checkout_price大于100且小于200的所有文檔。為此,請使用以下文法-

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

4.基于邏輯運算符的過濾器

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

以下示例說明了邏輯運算符的用法-

  1. AND運算符

    下面的查詢将傳回所有的檔案,其中center_id等于11,也是meal_id不等于1778的子查詢的和營運商将前來名單内。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

2.或運算符

以下查詢将傳回所有檔案,其中center_id等于11或meal_id為1207或2707。此外,or運算符的子查詢将位于清單内。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

5.用正規表達式過濾

當您有文本字段并且要搜尋具有特定模式的文檔時,正規表達式非常有用。

它可以與運算符$ regex一起使用,并且我們可以為運算符提供值,以使regex模式變為matc。我們将使用飯食資訊集合進行此查詢,然後将找到Cuisine字段以字元C開頭的文檔。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

讓我們再來看一個正規表達式的例子。我們将查找所有以“ S”開頭且以“ ian ” 結尾的類别的所有文檔。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

6.聚合管道

MongoDB的聚合管道提供了一個架構,可以對資料集執行一系列資料轉換。以下是其文法:

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

第一個階段将完整的文檔集作為輸入,然後每個随後的階段都将上一個轉換的結果集作為下一個階段的輸入并産生輸出。

MongoDB彙總中大約有10種轉換可用,在本文中我們将看到$ match和$ group。我們将在即将發表的MongoDB文章中詳細讨論每個轉換。

例如,在第一階段,我們将比對center_id等于11的文檔,在下一階段,它将計算center_id等于11的文檔數量。請注意,我們為$ count運算符配置設定了等于第二階段的total_rows是我們想要在輸出中使用的字段的名稱。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

現在,讓我們再舉一個例子,其中第一階段與之前相同,即center_id等于11,而在第二階段中,我們要計算center_id 11的字段num_orders的平均值和center_id 11的唯一的food_ids。

mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注
mongodb删除字段_使用PyMongo查詢MongoDB資料庫總覽介紹目錄什麼是PyMongo?安裝步驟将資料插入資料庫從JSON檔案建立集合3.将資料插入收藏夾查詢資料庫4.基于邏輯運算符的過濾器尾注

尾注

如今生成的資料量之大令人難以置信,是以有必要找到更好的替代方法來查詢資料。總而言之,在本文中,我們學習了如何使用PyMongo查詢MongoDB資料庫。此外,我們了解了如何根據所需情況應用各種過濾器。

我鼓勵您自己嘗試,并在評論部分分享您的經驗。此外,如果您遇到以上任何概念的問題,請随時在下面的評論中問我。