- MongoEngine 教程
- MongoEngine - 首頁
- MongoEngine - MongoDB
- MongoEngine - MongoDB Compass
- MongoEngine - 物件文件對映器
- MongoEngine - 安裝
- MongoEngine - 連線到MongoDB資料庫
- MongoEngine - 文件類
- MongoEngine - 動態模式
- MongoEngine - 欄位
- MongoEngine - 新增/刪除文件
- MongoEngine - 查詢資料庫
- MongoEngine - 過濾器
- MongoEngine - 查詢運算子
- MongoEngine - QuerySet 方法
- MongoEngine - 排序
- MongoEngine - 自定義Query Sets
- MongoEngine - 索引
- MongoEngine - 聚合
- MongoEngine - 高階查詢
- MongoEngine - 文件繼承
- MongoEngine - 原子更新
- MongoEngine - Javascript
- MongoEngine - GridFS
- MongoEngine - 訊號
- MongoEngine - 文字搜尋
- MongoEngine - 擴充套件
- MongoEngine 有用資源
- MongoEngine - 快速指南
- MongoEngine - 有用資源
- MongoEngine - 討論
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
廣告