首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MongoDB 學習筆記(三):查詢表達式全攻略

     編輯:DB2 教學

MongoDB 查詢表達式全攻略

MongoDB 提供豐富的查詢運算子,支援比較、邏輯、元素、正則、JavaScript 等多種條件構建。本文系統整理常用查詢表達式,附帶實戰示例,便於快速查閱。

1. 比較運算子

運算子含義示例
$ne不等於db.stu.find({name:{$ne:'billvsme'}})
$gt大於db.stu.find({age:{$gt:18}})
$lt小於db.stu.find({age:{$lt:18}})
$gte大於等於db.stu.find({age:{$gte:18}})
$lte小於等於db.stu.find({age:{$lte:18}})

2. 集合運算子

運算子含義示例
$in在指定數組中db.goods.find({stu_id:{$in:[93001,93002]}})
$nin不在指定數組中db.stu.find({age:{$nin:[18,20]}})
$all包含數組所有元素db.stu.find({like:{$all:['football','basketball']}})

3. 邏輯運算子

運算子含義示例
$or或db.stu.find({$or:[{age:18},{name:'tom'}]})
$and且(顯式)db.stu.find({$and:[{age:{$gt:18}},{age:{$lt:22}}]})
$not非db.stu.find({age:{$not:{$gt:18}}})
$nor所有條件均為假db.stu.find({$nor:[{age:18},{age:20}]})

4. 元素運算子

運算子含義示例
$exists字段是否存在db.stu.find({body:{$exists:true}})
$mod取模運算db.stu.find({stu_id:{$mod:[5,0]}}) // 5 的倍數
$type字段類型匹配db.stu.find({age:{$type:2}}) // 2 為 String

類型代碼參考:MongoDB 官方文檔

5. 進階運算子(慎用,影響性能)

運算子含義示例
$whereJavaScript 表達式db.stu.find({$where:'this.age>18'})
$regex正則匹配db.stu.find({name:{$regex:'^bill'}})

性能提示:$where 需將 BSON 轉 JSON 再執行,效率極低;$regex 若無索引支持會全表掃描。生產環境請優先使用原生運算子並建立索引。

6. 實戰組合示例

// 年齡 18-25 之間,且喜歡籃球或足球,姓名以 "A" 開頭
db.stu.find({
    $and: [
        {age: {$gte: 18, $lte: 25}},
        {like: {$in: ['basketball', 'football']}},
        {name: {$regex: '^A'}}
    ]
})
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved