MongoDB相關操作符

關於Java操作Mongodb時常用到的一些操作符及說明如下:

/**
 * MongoDB keywords for various query operations
 * 
 * @author h
 * 
 */
public class QueryOperators {

	/** 任意組合不同的查詢條件(可以針對任意key的限制條件),只要滿足任意組合條件中的一個即可 */
	public static final String OR = "$or";
	/** 和$or操作符相對,任意組合不同的查詢條件(可以針對任意key的限制條件),並且必須同時滿足所有條件 */
	public static final String AND = "$and";

	/** 用來判斷某個key值大於某個指定的值 */
	public static final String GT = "$gt";
	/** 用來判斷某個key值大於等於某個指定的值 */
	public static final String GTE = "$gte";
	/** 用來判斷某個key值小於某個指定的值 */
	public static final String LT = "$lt";
	/** 用來判斷某個key值小於等於某個指定的值 */
	public static final String LTE = "$lte";
	/** 用來不等值條件過濾某一個key的值 */
	public static final String NE = "$ne";
	/** 用來指定某個key的值在指定的離散的值域內 */
	public static final String IN = "$in";
	/** 和$in相對,用來指定key值不存在某個指定的離散值域內 */
	public static final String NIN = "$nin";
	/** 取餘操作符,篩選經過區域操作後,結果符合條件的文檔 */
	public static final String MOD = "$mod";
	/** 數組查詢操作符,查詢條件是一個數組,被查詢的字段也是一個數組,要求被查詢的數組類型的字段要是查詢條件數組的超集(即大數組要包含小數組)*/
	public static final String ALL = "$all";
	/** 用於某個數組類型的key對應值的數量滿足要求 */
	public static final String SIZE = "$size";
	/** 查詢不包含某一個屬性(key)的文檔 */
	public static final String EXISTS = "$exists";
	/** 數組查詢操作符,用來指定數組的每一個元素同時滿足所羅列的條件,如果不指定,則條件會是或的關係 */
	public static final String ELEM_MATCH = "$elemMatch";

	/** 強大的查詢關鍵字,但性能較差,可以傳入js表達式或js函數來篩選數據 */
	public static final String WHERE = "$where";
	/** 和$or相反,表示所有條件均不能滿足則返回 */
	public static final String NOR = "$nor";
	/** 過濾某個字段是某一個BSON數據類型的數據 */
	public static final String TYPE = "$type";
	/** 元條件語句,需要和其他條件語句組合使用 */
	public static final String NOT = "$not";

	// geo operators
	public static final String WITHIN = "$within";
	/** 基於2d空間索引,指定一個點,返回該點有近及遠的所有的點 */
	public static final String NEAR = "$near";
	/** 基於2d空間索引,指定一個點,由近及遠的返回所有的點,和$near操作符不同的是計算距離的方式 $nearSphere計算的是球面距離。$near計算的是座標距離 */
	public static final String NEAR_SPHERE = "$nearSphere";

	// meta query operators (to be implemented in QueryBuilder)
	public static final String MIN = "$min";
	public static final String MAX = "$max";
	/** 在查詢、更新或其他操作執行過程中,可以通過添加$comment操作符添加評論。改評論會被記錄在日誌中,用於後續分析 */
	public static final String COMMENT = "$comment";
	/** 數組類型字段的投影操作,返回原來數據的一個子集.針對一個數組,其有如下幾種返回子集的方式 */
	public static final String SLICE = "$slice";

	// update operators
	/** 對一個數字字段的某個field增加value */
	public static final String INC = "$inc";
	/** 對字段進行重命名 */
	public static final String RENAME = "$rename";
	/** 把文檔中某個字段field的值設爲value */
	public static final String SET = "$set";
	/** 刪除某個字段field */
	public static final String UNSET = "$unset";
	/** 加一個值到數組內,而且只有當這個值在數組中不存在時才增加 */
	public static final String ADDTOSET = "$addToSet";
	/** 用於刪除數組內的一個值(刪除數組內第一個值:{$pop:{field:-1}}、刪除數組內最後一個值:{$pop:{field:1}}) */
	public static final String POP = "$pop";
	/** 用法同$pull一樣,可以一次性刪除數組內的多個值 */
	public static final String PULLALL = "$pullAll";
	/** 從數組field內刪除一個等於_value的值 */
	public static final String PULL = "$pull";
	/** 把value追加到field裏。注:field只能是數組類型,如果field不存在,會自動插入一個數組類型 */
	public static final String PUSH = "$push";
	/** 用法同$push一樣,只是$pushAll可以一次追加多個值到一個數組字段內 */
	public static final String PUSHALL = "$pushAll";
	/** 組合使用 ,$each 配合 $push:將多值壓入數組 field 中,不去重 */
	public static final String EACH = "$each";
	/** 用於預算符$push的限定符,用於將數組中的文檔重新排序 */
	public static final String SORT = "$sort";
	public static final String BIT = "$bit";

}

提供這樣一個類,方便我們開發的時候直接查找使用,提高開發效率,也方便統一維護。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章