mongodb 邏輯操作符

2021-09-24 20:30:47 字數 2160 閱讀 3783

or 、 in

$or是乙個邏輯or操作符操作在乙個資料或者多個表示式並且需要選擇至少乙個滿足條件的表示式,$or有表示式為:

, , ... , ] }

注意事項:

1、$or中的所有表示式必須支援索引,否則的話mongodb就會掃瞄整個集合

2、當使用$or查詢並且使用索引時,每個$or的條件表示式都可以使用自己的索引,下面的例子中,可以為quantity和price分別單獨建立索引,而不需要建立乙個復合索引

3、使用$or操作比較欄位的值是否等於某個值時可以使用$in替換$or操作;例如查詢集合inventory中欄位quantity的值等於20或者50的所有文件,使用$in操作:

db.inventory.find ( } )

舉例:查詢集合inventory中所有欄位quantity小於20或者price等於10的所有文件

db.inventory.find( }, ] } )

(。。或者。。)查詢name為xiaomu或者**包含3的資料

db.collection1.find(,}]})

(包含。。或者包含。。)查詢price中含有1或者2的資料

db.collection1.find(})

$and執行乙個邏輯and操作在乙個或者多個表示式上,並且查詢陣列中指定的所有表示式指定的文件document

, , ... , {} ] }

注意事項:

1、$and使用短路求值,如果第乙個表示式的結果是false,mongodb將不會執行剩餘的表示式

舉例:查詢會選擇集合inventory中的所有文件,條件是price不等於1.99並且price欄位存在

db.inventory.find( }, } ] } )

以上查詢還可以使用隱式and操作,如下:

db.inventory.find( } )

and查詢使用多個表示式指定相同的操作,以下欄位將會查詢price字段值等於0.99或1.99並且sale字段值為true或者qty小於20的所有文件,使用隱式and操作無法構建此查詢,因為它不止一次使用or操作

db.inventory.find( , ] },

, } ] }

]} )

$not執行乙個邏輯not操作在指定的表示式並查詢到不匹配表示式的文件,這包含不包括欄位的文件;

語法: } }

舉例:此查詢將會查詢inventory集合中的文件,條件如下:price欄位小於等於1.99或者price不存在

db.inventory.find( } } )

查詢inventory集合中item欄位不是以p開頭的所有文件

db.inventory.find( } )

既不也不

, , ... ] }

舉例:包含欄位price值不等於1.99,包含欄位sale值不等於true,或者包含欄位price值不等於1.99,不包含欄位sale;或者不包含欄位price,包含欄位sale值不等於true;或者不包含欄位price,不包含欄位sale

db.inventory.find( , ] } )

(既不也不)查詢name不為xiaomu或者name不為xiaoli的資料

db.collection1.find(,]})

欄位price不等於1.99,欄位qty不小於20,欄位sale不等於true;查詢的結果包含不存在的字段

db.inventory.find( , }, ] }

db.users.find(  } )      //查詢add列存在的記錄

db.users.find( } ) //查詢add列不存在的記錄

db.users.find( }, ] } ) //復合條件

db.c2.find(}) //查詢存在hight欄位的資料

(包含。。並且包含。。)此處price是個陣列,此方法查詢所有price包含1和2的資料

db.collection1.find(})

(不包含。。並且不包含。。)查詢price中不含有1並且不含有2的資料

db.collection1.find(})

邏輯操作符

邏輯操作符 與 或 非 邏輯與 只有兩個條件同時滿足的時候才會返回true,兩個條件都是假的返回的結果是false 即 一假即假 當邏輯語操作不是布林值的時候,返回值就不一定是布林值,可分為以下幾種情況 1 當第乙個運算元據是物件時,返回第二個運算元據的值。2 當第二個運算元據為物件時,如果第乙個運...

邏輯操作符

邏輯操作符 只要有乙個條件不成立,返回false 說明 在有乙個運算元不是布林值的情況,邏輯與操作就不一定返回值,此時它遵循下列規則 1 如果第乙個運算元隱士型別轉換後為true,則返回第二個運算元。說明 規則是兩個運算元的情況。例子 console.log 80 50 返回結果 50 2 如果第乙...

關係操作符和邏輯操作符

關係操作符和邏輯操作符使用算術或指標型別的運算元,並返回bool 型別的值。操作符功能用法 logical not 邏輯非 expr less than 小於 expr expr less than or equal 小於等於 expr expr greater than 大於 expr expr ...