TinyDB - 或邏輯運算



"或邏輯運算" 運算子組合多個條件,只有當其中一個條件滿足時才評估為 True。TinyDB 或邏輯運算作用於資料庫的兩個查詢。如果其中任何一個查詢為 True,TinyDB 將獲取所需資料。另一方面,如果兩個查詢都為 False,它將返回一個空白。

語法

TinyDB **或邏輯運算** 的語法如下所示:

db.search((Query().(query1) | (Query().(query2) 

這裡,**field** 表示我們要訪問的資料部分。**Query()** 是我們名為 **student** 的 JSON 表格建立的物件。如果滿足任何一個條件,它將獲取資料,否則將返回空白。

讓我們來看幾個例子,看看它是如何工作的。我們將使用我們在前面所有章節中使用過的相同的 **student** 資料庫。

示例 1

讓我們看看當我們在 "st_name" 和 "subject" 欄位上應用或邏輯運算並檢查以下條件:"st_name=lakhan" 和 "subject=TinyDB" 時,我們的 TinyDB 學生資料庫返回什麼:

from tinydb import TinyDB, Query
db = TinyDB('student.json')
db.search ((Query().st_name == 'lakan') | (Query().subject == 'TinyDB')) 

此查詢將獲取以下行:

[
   {
      "roll_number":1,
      "st_name":"elen",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":4,
      "st_name":"lakhan",
      "mark":200,
      "subject":"MySQL",
      "address":"mumbai"
   },
   {
      "roll_number":5,
      "st_name":"karan",
      "mark":275,
      "subject":"TinyDB",
      "address":"benglore"
   }
]

示例 2

在本例中,讓我們在 "subject" 和 "roll_number" 欄位上應用或邏輯運算:

from tinydb import TinyDB, Query
db = TinyDB('student.json')
db.search((student.subject.search('M')) | (student.roll_number < 5))

此查詢將獲取所有 "subject" 欄位以字母 "M" 開頭或 "roll_number" 小於 "5" 的行。

[
   {
      "roll_number":1,
      "st_name":"elen",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":2,
      "st_name":"Ram",
      "mark":[
         250,
         280
      ],
      "subject":[
         "TinyDB",
         "MySQL"
      ],
      "address":"delhi"
   },
   {
      "roll_number":3,
      "st_name":"kevin",
      "mark":[
         180,
         200
      ],
      "subject":[
         "oracle",
         "sql"
      ],
      "address":"keral"
   },
   {
      "roll_number":4,
      "st_name":"lakhan",
      "mark":200,
      "subject":"MySQL",
      "address":"mumbai"
   }
]
廣告

© . All rights reserved.