MongoEngine - 查詢運算子



除了用於檢查相等的 = 運算子之外,MongoEngine 中還定義了以下邏輯運算子。

ne 不等於
lt 小於
lte 小於或等於
gt 大於
gte 大於或等於
not 否定標準檢查,可以在其他運算子之前使用
in 值在列表中
nin 值不在列表中
mod 值 % x == y,其中 x 和 y 是兩個提供的數值
all 提供的數值列表中的每一項都在陣列中
size 陣列的大小是
exists 欄位的值存在

這些運算子必須用雙下劃線 __ 附加到欄位名稱。

要使用大於 (gt) 運算子,請使用以下格式:

#using greater than operator
for product in products.objects(price__gt=10000):
   print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)

輸出

ID: 1 Name: Laptop Price: 25000
ID: 2 Name: TV Price: 50000
ID: 5 Name: Printer Price: 12500

in 運算子類似於 Python 的 in 運算子。對於與列表中名稱匹配的產品名稱,使用以下程式碼:

for product in products.objects(Name__in=['TV', 'Printer']):
print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)

輸出

ID: 2 Name: TV Price: 50000
ID: 5 Name: Printer Price: 12500

您可以使用以下運算子作為正則表示式快捷方式,將過濾器應用於查詢:

exact 字串欄位完全匹配值
iexact 字串欄位完全匹配值(不區分大小寫)
contains 字串欄位包含值
icontains 字串欄位包含值(不區分大小寫)
startswith 字串欄位以值開頭
istartswith 字串欄位以值開頭(不區分大小寫)
endswith 字串欄位以值結尾
iendswith 字串欄位以值結尾(不區分大小寫)
match 執行 $elemMatch,以便您可以匹配陣列內的整個文件

例如,以下程式碼列印名稱中包含“o”的產品詳細資訊:

for product in products.objects(Name__contains='o'):
   print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)

輸出

ID: 1 Name: Laptop Price: 25000
ID: 3 Name: Router Price: 2000

在另一個字串查詢示例中,以下程式碼顯示以“er”結尾的名稱:

for product in products.objects(Name__endswith='er'):
   print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)

輸出

ID: 3 Name: Router Price: 2000
ID: 4 Name: Scanner Price: 5000
ID: 5 Name: Printer Price: 12500
廣告
© . All rights reserved.