MongoDB | 運算符 —— 查詢(query)與投影(projection)運算符 (16.1)

目錄

16.運算符

16.1.查詢(query)與投影(projection)運算符

16.1.1比較運算符

16.1.2.邏輯運算符

16.1.3.元素查詢運算符

16.1.4.求值查詢運算符

16.1.5.地理空間查詢運算符

16.1.6.數組查詢運算符

16.1.7.按位查詢運算符

16.1.8.投影運算符


16.運算符

16.1.查詢(query)與投影(projection)運算符

16.1.1比較運算符

查詢操作符 含義  
{field:{$eq:value}} 匹配字段field值等於指定值value的文檔 比較運算符
{field:{$gt:value}} 匹配字段field值大於指定值value的文檔
{field:{$gte:value}} 匹配字段field值≥指定值value的文檔
{field:{$lt:value}} 匹配字段field值<指定值value的文檔
{field:{$lte:value}} 匹配字段field值≤指定值value的文檔
{field:{$ne:value}} 匹配字段field值≠指定值value的文檔
{field:$in:[value1,value2,...]} 匹配字段field值 in 指定數組中的value值的文檔
{field:$nin:[value1,value2,…]} 匹配字段field值 not in 指定數組中的value值的文檔

16.1.2.邏輯運算符

{$or:[expression1,expression2,...]} 對兩個或多個expressions的數組執行邏輯 或 操作 邏輯運算符
{$and:[expression1,expression2,...]} 對兩個或多個expressions的數組執行邏輯 且 操作
{$nor:[expression1, expression2, ...]} 對兩個或多個expressions的數組執行邏輯 且 操作,並選擇數組中所有表達式均失敗的文檔
{field:{$not:{$gt:1.99}}} 選擇字段field的值不大於1.99的文檔

16.1.3.元素查詢運算符

{field:{$exists:boolean, ...}} 匹配是否包含字段field的文檔 元素查詢運算符
{field:{$type:[type1, type2, ...]}} 匹配字段field數據類型爲數組中type的文檔

16.1.4.求值查詢運算符

{$expr:{$gt:["$field1, $field2"]}} 匹配字段field1的值大於字段field2的值的文檔 求值查詢運算符
{$jsonSchema:<JSON Schema object>} 匹配滿足制定JSON架構的文檔
{field:{$mod:[divisor, remainder]}} 選擇字段field值除以 divisor 後具有指定 remainder 的文檔(即執行模運算以選擇文檔)
{field:/pattern/<options>} 爲查詢中的模式匹配字符串提供正則表達式功能(options:[i:大小寫不敏感,m:全匹配,x:忽略pattern中
空白字符及#註釋,s:允許點字符匹配所有字符且包括換行符])
{$text:{$search:<string>,$language:<string>,$caseSensitive:<boolean>,$diacriticSensitive:<boolean>}} 對用文本索引索引的字段的內容執行文本搜索($search:待檢索文本,$language:檢索的語言,$caseSensitive:是否區分大小寫,$diacriticSensitive:是否區分音調)
{$where:function(){return (fuc(this.name) == "9b53e667f30cd329dca1ec9e6a83e994")}} 使用$where運算符將包含JavaScript表達式的字符串或完整的JavaScript函數傳遞給查詢系統.(javascript函數有28種)

16.1.5.地理空間查詢運算符

{<location field>:{$geometry:{type:<"Polygon" or "MultiPolygon">,coordinates:[<coordinates>]}}} 選擇具有完全位於指定形狀內的地理空間數據的文檔。 地理空間查詢運算符
{<location field>:$geoIntersects:{{$geometry:{type:<"Polygon" or "MultiPolygon">,coordinates:[<coordinates>]}}}} 選擇地理空間數據與指定的GeoJSON對象相交的文檔
{<location field>:{$near:{$geometry:{type:"Point",coordinates:[<longitude>,<latitude>]},$maxDistance:<distance in meters>, $minDistance:<distance in meters>}}} 指定地理空間查詢從最近到最遠返回文檔的點
{$nearSphere:{$geometry:{type:"Point", coordinates:[<longitude>,<latitude>]},$minDistance:<distance in meters>,$maxDistance:<distance in meters>}} 指定球面地理空間查詢從最近到最遠返回文檔的點
{$geometry:type:<GeoJSON object type>,coordinates:[<coordinates>]} $geometry操作符與以下地理空間查詢操作符一起使用:$geoWithin、$geoIntersects、$near和$nearSphere。
$minDistance:<distance in meters> 將地理空間$near或$nearSphere查詢的結果過濾到距中心點至少指定距離的文檔
$maxDistance:<distance in meters> 將地理空間$near或$nearSphere查詢的結果過濾到距中心點至多指定距離的文檔
{<location field>:{$geoWithin:{$center:[[<x>,<y>],<radius>]}}} $center操作符爲$geoWithin查詢指定一個圓。該查詢返回圓形範圍內的遺留座標對
{<location field>:{$geoWithin:{$centerSphere:[[<x>,<y>],<radius>]}}} 爲使用球面幾何圖形的地理空間查詢定義圓。查詢返回圓邊界內的文檔
{<location field>:{$geoWithin:{$box:[[<bottom left coordinates>],[<upper right coordinates>]]}}} 爲地理空間$geoWithin查詢指定一個矩形,以根據其基於點的位置數據返回矩形邊界內的文檔
{<location field>:{$geoWithin:{$polygon:[[<x1>,<y2>],...]}}} 爲遺留座標對上的地理空間$geoWithin查詢指定一個多邊形。查詢返回多邊形範圍內的對

16.1.6.數組查詢運算符

{field:{$all:[<value1>,<values2>,...]}} 匹配字段field包含查詢中指定的所有元素的數組 數組查詢運算符
{field:{$all:[{$elemMatch:{}},{$elemMatch:{}},...]}} 匹配字段field包含查詢中指定的所有元素($elementMatch)的數組
{field:{$elemMatch:{<query1>,<query2>,...}}} $elemMatch運算符匹配數組字段其中至少有一個元素與所有指定的查詢條件匹配,並返回文檔
{field:{$size:<num of elemets>}} $size運算符將任何數組與參數指定的元素數相匹配

16.1.7.按位查詢運算符

{field:{$bitsAllClear:[<position1>,<position2>,...]}} $bitsAllClear匹配字段中查詢給出的所有位置(可以是十進制數、BinData實例)都是0的文檔(位置形式:…3210) 按位查詢運算符
{field:{$bitsAllSet:[<position1>,<position2,...>]}} $bitsAllClear匹配字段中查詢給出的所有位置(可以是十進制數、BinData實例)都不爲0的文檔(位置形式:…3211)
{field:{$bitsAnyClear:[<position1>,<position2>,...]}} $bitsAllClear匹配字段中查詢給出的所有位置(可以是十進制數、BinData實例)至少一個爲0的文檔(位置形式:…3212)
{field:{$bitsAnySet:[<position1>,<position2>,...]}} $bitsAllClear匹配字段中查詢給出的所有位置(可以是十進制數、BinData實例)至少一個不爲0的文檔(位置形式:…3213)
{<query>,$comment:<comment>} 爲當前查詢添加註釋

16.1.8.投影運算符

{<array>:<value>...},{<array>.$:1} 定位$操作符將查詢結果中的<array>的內容限制爲只包含與查詢文檔匹配的第一個元素。</array>若要指定要更新的數組元素,請參閱有關更新的位置$運算符 投影運算符
{field:{$elemMatch:{field.field:{<query>}}}} $elemMatch運算符將查詢結果中<array>字段的內容限制爲僅包含與$elemMatch條件匹配的第一個元素
{$text:{}},{$score:{$meta:"textScore"}.sort({score:{$meta:"textScore"}}).limit(num) ①$meta投影操作符爲每個匹配的文檔返回與查詢關聯的元數據
②返回與每個匹配文檔的相應$text查詢相關聯的分數。文本得分表示文檔與搜索項或多個搜索項的匹配程度。如果不與$text查詢一起使用,則返回0分
{field:value},{<array>:{$slice:[skip, limit]}} $slice操作符控制查詢返回的數組的項數。有關在使用$push更新期間限制數組大小的信息,請參閱$slice修飾符(skip:跳過的項數,limit:返回數組的項數)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章