一、比較子
運算子 |
對應到mysql的運算子 |
$gt |
> |
$gte |
>= |
$in |
in |
$lt |
< |
$lte |
<= |
$ne |
!= |
$nin |
not in |
$all |
無對應項,指數組所有單元匹配都有,用法同$in,$nin |
文法格式:{列名:{$gt:value}}{列名:{$ne:value}}{列名:{$in:[value1,value2,value3....]}} 備忘:
二、邏輯運算子
運算子 |
對應到mysql的運算子 |
$or |
or |
$and |
and |
$not |
not |
$nor |
無對應項,指”所有列舉條件都不成立,則為真” |
文法格式:{$and:[{列:{$gte:value1}},{列:{$gle:value2}}]}{$nor:[{列:value1},{列:value2},{列:value3}....]}
三、元素運算子
名字 |
描述 |
$exists |
某列存在則為真 |
$mod |
滿足某求餘條件則為真 |
$type |
資料為某類型則為真 |
某一列是否存在 {列:{$exists:1}} #1表示存在取5倍數的列: {列:{$mod:[5,0]}} #[5,0]表示對5進行求餘,餘數為0類型 {列:{$type:2}}類型值從1到19,還有-1和127對應的資料類型請查看官方文檔:https://docs.mongodb.com/manual/reference/operator/query/type/index.html
四、js運算子(1)
名字 |
描述 |
$where |
js運算式為真則為真 |
$regex |
Regex匹配則為真 |
$where 和 $regex 是將所有的的bson先轉化為json對象,再供js引擎查詢,消耗記憶體比較大適合少量資料查詢,一般情況下不建議用文法格式:{$where:'this.列 > value1 && this.列 < value2....'} {列:{$regex:/pattern/<options> }}例如:{ name: { $regex: /acme.*corp/i, $nin: [ 'acmeblahcorp' ] } }{ name: { $regex: /acme.*corp/, $options: 'i', $nin: [ 'acmeblahcorp' ] } }{ name: { $regex: 'acme.*corp', $options: 'i', $nin: [ 'acmeblahcorp' ] } }
五、js運算子(2)
名字 |
描述 |
$inc |
增長 |
$rename |
重新命名列 |
$setOnInsert |
當upsert時,設定欄位的值 |
$set |
設定欄位的新值 |
$unset |
刪除指定的列 |