Class MapExp
Exp.
The bin expression argument in these methods can be a reference to a bin or the result of another expression. Expressions that modify bin values are only used for temporary expression evaluation and are not permanently applied to the bin.
Map modify expressions return the bin's value. This value will be a map except when the map is nested within a list. In that case, a list is returned for the map modify expression.
Valid map key types are:
- String
- Integer
- byte[]
The server will validate map key types in an upcoming release.
All maps maintain an index and a rank. The index is the item offset from the start of the map, for both unordered and ordered maps. The rank is the sorted index of the value component. Map supports negative indexing for index and rank.
Index examples:
- Index 0: First item in map.
- Index 4: Fifth item in map.
- Index -1: Last item in map.
- Index -3: Third to last item in map.
- Index 1 Count 2: Second and third items in map.
- Index -3 Count 3: Last three items in map.
- Index -5 Count 4: Range between fifth to last item to second to last item inclusive.
Rank examples:
- Rank 0: Item with lowest value rank in map.
- Rank 4: Fifth lowest ranked item in map.
- Rank -1: Item with highest ranked value in map.
- Rank -3: Item with third highest ranked value in map.
- Rank 1 Count 2: Second and third lowest ranked items in map.
- Rank -3 Count 3: Top three ranked items in map.
Nested expressions are supported by optional CTX context arguments. Example:
- bin = {key1={key11=9,key12=4}, key2={key21=3,key22=5}}
- Set map value to 11 for map key "key21" inside of map key "key2".
- Get size of map key2.
- MapExp.size(Exp.mapBin("bin"), CTX.mapKey(Value.get("key2"))
- result = 2
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ExpCreate expression that removes all items in map.static ExpgetByIndex(int returnType, Exp.Type valueType, Exp index, Exp bin, CTX... ctx) Create expression that selects map item identified by index and returns selected data specified by returnType (SeeMapReturnType).static ExpgetByIndexRange(int returnType, Exp index, Exp bin, CTX... ctx) Create expression that selects map items starting at specified index to the end of map and returns selected data specified by returnType (SeeMapReturnType).static ExpgetByIndexRange(int returnType, Exp index, Exp count, Exp bin, CTX... ctx) Create expression that selects "count" map items starting at specified index and returns selected data specified by returnType (SeeMapReturnType).static ExpCreate expression that selects map item identified by key and returns selected data specified by returnType.static ExpgetByKeyList(int returnType, Exp keys, Exp bin, CTX... ctx) Create expression that selects map items identified by keys and returns selected data specified by returnType (SeeMapReturnType).static ExpgetByKeyRange(int returnType, Exp keyBegin, Exp keyEnd, Exp bin, CTX... ctx) Create expression that selects map items identified by key range (keyBegin inclusive, keyEnd exclusive).static ExpgetByKeyRelativeIndexRange(int returnType, Exp key, Exp index, Exp bin, CTX... ctx) Create expression that selects map items nearest to key and greater by index.static ExpCreate expression that selects map items nearest to key and greater by index with a count limit.static ExpCreate expression that selects map item identified by rank and returns selected data specified by returnType (SeeMapReturnType).static ExpgetByRankRange(int returnType, Exp rank, Exp bin, CTX... ctx) Create expression that selects map items starting at specified rank to the last ranked item and returns selected data specified by returnType (SeeMapReturnType).static ExpgetByRankRange(int returnType, Exp rank, Exp count, Exp bin, CTX... ctx) Create expression that selects "count" map items starting at specified rank and returns selected data specified by returnType (SeeMapReturnType).static ExpgetByValue(int returnType, Exp value, Exp bin, CTX... ctx) Create expression that selects map items identified by value and returns selected data specified by returnType.static ExpgetByValueList(int returnType, Exp values, Exp bin, CTX... ctx) Create expression that selects map items identified by values and returns selected data specified by returnType (SeeMapReturnType).static ExpgetByValueRange(int returnType, Exp valueBegin, Exp valueEnd, Exp bin, CTX... ctx) Create expression that selects map items identified by value range (valueBegin inclusive, valueEnd exclusive) If valueBegin is null, the range is less than valueEnd.static ExpgetByValueRelativeRankRange(int returnType, Exp value, Exp rank, Exp bin, CTX... ctx) Create expression that selects map items nearest to value and greater by relative rank.static ExpCreate expression that selects map items nearest to value and greater by relative rank with a count limit.static ExpCreate expression that increments values by incr for all items identified by key.static ExpCreate expression that writes key/value item to a map bin.static ExpCreate expression that writes each map item to a map bin.static ExpremoveByIndex(Exp index, Exp bin, CTX... ctx) Create expression that removes map item identified by index.static ExpremoveByIndexRange(int returnType, Exp index, Exp bin, CTX... ctx) Create expression that removes map items starting at specified index to the end of map.static ExpremoveByIndexRange(int returnType, Exp index, Exp count, Exp bin, CTX... ctx) Create expression that removes "count" map items starting at specified index.static ExpremoveByKey(Exp key, Exp bin, CTX... ctx) Create expression that removes map item identified by key.static ExpremoveByKeyList(int returnType, Exp keys, Exp bin, CTX... ctx) Create expression that removes map items identified by keys.static ExpremoveByKeyRange(int returnType, Exp keyBegin, Exp keyEnd, Exp bin, CTX... ctx) Create expression that removes map items identified by key range (keyBegin inclusive, keyEnd exclusive).static ExpremoveByKeyRelativeIndexRange(int returnType, Exp key, Exp index, Exp bin, CTX... ctx) Create expression that removes map items nearest to key and greater by index.static ExpCreate expression that removes map items nearest to key and greater by index with a count limit.static ExpremoveByRank(Exp rank, Exp bin, CTX... ctx) Create expression that removes map item identified by rank.static ExpremoveByRankRange(int returnType, Exp rank, Exp bin, CTX... ctx) Create expression that removes map items starting at specified rank to the last ranked item.static ExpremoveByRankRange(int returnType, Exp rank, Exp count, Exp bin, CTX... ctx) Create expression that removes "count" map items starting at specified rank.static ExpremoveByValue(int returnType, Exp value, Exp bin, CTX... ctx) Create expression that removes map items identified by value.static ExpremoveByValueList(int returnType, Exp values, Exp bin, CTX... ctx) Create expression that removes map items identified by values.static ExpremoveByValueRange(int returnType, Exp valueBegin, Exp valueEnd, Exp bin, CTX... ctx) Create expression that removes map items identified by value range (valueBegin inclusive, valueEnd exclusive).static ExpremoveByValueRelativeRankRange(int returnType, Exp value, Exp rank, Exp bin, CTX... ctx) Create expression that removes map items nearest to value and greater by relative rank.static ExpCreate expression that removes map items nearest to value and greater by relative rank with a count limit.static ExpCreate expression that returns list size.
-
Constructor Details
-
MapExp
public MapExp()
-
-
Method Details
-
put
Create expression that writes key/value item to a map bin. The 'bin' expression should either reference an existing map bin or be a expression that returns a map.// Add entry{11,22} to existing map bin. Expression e = Exp.build(MapExp.put(MapPolicy.Default, Exp.val(11), Exp.val(22), Exp.mapBin(binName))); client.operate(null, key, ExpOperation.write(binName, e, ExpWriteFlags.DEFAULT)); // Combine entry{11,22} with source map's first index entry and write resulting map to target map bin. Expression e = Exp.build( MapExp.put(MapPolicy.Default, Exp.val(11), Exp.val(22), MapExp.getByIndexRange(MapReturnType.KEY_VALUE, Exp.val(0), Exp.val(1), Exp.mapBin(sourceBinName))) ); client.operate(null, key, ExpOperation.write(targetBinName, e, ExpWriteFlags.DEFAULT)); -
putItems
Create expression that writes each map item to a map bin. -
increment
Create expression that increments values by incr for all items identified by key. Valid only for numbers. -
clear
Create expression that removes all items in map. -
removeByKey
Create expression that removes map item identified by key. -
removeByKeyList
Create expression that removes map items identified by keys. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByKeyRange
Create expression that removes map items identified by key range (keyBegin inclusive, keyEnd exclusive). If keyBegin is null, the range is less than keyEnd. If keyEnd is null, the range is greater than equal to keyBegin. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByKeyRelativeIndexRange
public static Exp removeByKeyRelativeIndexRange(int returnType, Exp key, Exp index, Exp bin, CTX... ctx) Create expression that removes map items nearest to key and greater by index. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED.Examples for map [{0=17},{4=2},{5=15},{9=10}]:
- (value,index) = [removed items]
- (5,0) = [{5=15},{9=10}]
- (5,1) = [{9=10}]
- (5,-1) = [{4=2},{5=15},{9=10}]
- (3,2) = [{9=10}]
- (3,-2) = [{0=17},{4=2},{5=15},{9=10}]
-
removeByKeyRelativeIndexRange
public static Exp removeByKeyRelativeIndexRange(int returnType, Exp key, Exp index, Exp count, Exp bin, CTX... ctx) Create expression that removes map items nearest to key and greater by index with a count limit. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED.Examples for map [{0=17},{4=2},{5=15},{9=10}]:
- (value,index,count) = [removed items]
- (5,0,1) = [{5=15}]
- (5,1,2) = [{9=10}]
- (5,-1,1) = [{4=2}]
- (3,2,1) = [{9=10}]
- (3,-2,2) = [{0=17}]
-
removeByValue
Create expression that removes map items identified by value. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByValueList
Create expression that removes map items identified by values. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByValueRange
public static Exp removeByValueRange(int returnType, Exp valueBegin, Exp valueEnd, Exp bin, CTX... ctx) Create expression that removes map items identified by value range (valueBegin inclusive, valueEnd exclusive). If valueBegin is null, the range is less than valueEnd. If valueEnd is null, the range is greater than equal to valueBegin. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByValueRelativeRankRange
public static Exp removeByValueRelativeRankRange(int returnType, Exp value, Exp rank, Exp bin, CTX... ctx) Create expression that removes map items nearest to value and greater by relative rank. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED.Examples for map [{4=2},{9=10},{5=15},{0=17}]:
- (value,rank) = [removed items]
- (11,1) = [{0=17}]
- (11,-1) = [{9=10},{5=15},{0=17}]
-
removeByValueRelativeRankRange
public static Exp removeByValueRelativeRankRange(int returnType, Exp value, Exp rank, Exp count, Exp bin, CTX... ctx) Create expression that removes map items nearest to value and greater by relative rank with a count limit. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED.Examples for map [{4=2},{9=10},{5=15},{0=17}]:
- (value,rank,count) = [removed items]
- (11,1,1) = [{0=17}]
- (11,-1,1) = [{9=10}]
-
removeByIndex
Create expression that removes map item identified by index. -
removeByIndexRange
Create expression that removes map items starting at specified index to the end of map. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByIndexRange
Create expression that removes "count" map items starting at specified index. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByRank
Create expression that removes map item identified by rank. -
removeByRankRange
Create expression that removes map items starting at specified rank to the last ranked item. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
removeByRankRange
Create expression that removes "count" map items starting at specified rank. Valid returnType values areMapReturnType.NONEorMapReturnType.INVERTED. -
size
Create expression that returns list size.// Map bin "a" size > 7 Exp.gt(MapExp.size(Exp.mapBin("a")), Exp.val(7)) -
getByKey
Create expression that selects map item identified by key and returns selected data specified by returnType.// Map bin "a" contains key "B" MapExp.getByKey(MapReturnType.EXISTS, Exp.Type.BOOL, Exp.val("B"), Exp.mapBin("a"))- Parameters:
returnType- metadata attributes to return. SeeMapReturnTypevalueType- expected type of return valuekey- map key expressionbin- bin or map value expressionctx- optional context path for nested CDT
-
getByKeyRange
Create expression that selects map items identified by key range (keyBegin inclusive, keyEnd exclusive). If keyBegin is null, the range is less than keyEnd. If keyEnd is null, the range is greater than equal to keyBegin.Expression returns selected data specified by returnType (See
MapReturnType). -
getByKeyList
Create expression that selects map items identified by keys and returns selected data specified by returnType (SeeMapReturnType). -
getByKeyRelativeIndexRange
public static Exp getByKeyRelativeIndexRange(int returnType, Exp key, Exp index, Exp bin, CTX... ctx) Create expression that selects map items nearest to key and greater by index. Expression returns selected data specified by returnType (SeeMapReturnType).Examples for ordered map [{0=17},{4=2},{5=15},{9=10}]:
- (value,index) = [selected items]
- (5,0) = [{5=15},{9=10}]
- (5,1) = [{9=10}]
- (5,-1) = [{4=2},{5=15},{9=10}]
- (3,2) = [{9=10}]
- (3,-2) = [{0=17},{4=2},{5=15},{9=10}]
-
getByKeyRelativeIndexRange
public static Exp getByKeyRelativeIndexRange(int returnType, Exp key, Exp index, Exp count, Exp bin, CTX... ctx) Create expression that selects map items nearest to key and greater by index with a count limit. Expression returns selected data specified by returnType (SeeMapReturnType).Examples for ordered map [{0=17},{4=2},{5=15},{9=10}]:
- (value,index,count) = [selected items]
- (5,0,1) = [{5=15}]
- (5,1,2) = [{9=10}]
- (5,-1,1) = [{4=2}]
- (3,2,1) = [{9=10}]
- (3,-2,2) = [{0=17}]
-
getByValue
Create expression that selects map items identified by value and returns selected data specified by returnType.// Map bin "a" contains value "BBB" MapExp.getByValue(MapReturnType.EXISTS, Exp.val("BBB"), Exp.mapBin("a"))- Parameters:
returnType- metadata attributes to return. SeeMapReturnTypevalue- value expressionbin- bin or map value expressionctx- optional context path for nested CDT
-
getByValueRange
public static Exp getByValueRange(int returnType, Exp valueBegin, Exp valueEnd, Exp bin, CTX... ctx) Create expression that selects map items identified by value range (valueBegin inclusive, valueEnd exclusive) If valueBegin is null, the range is less than valueEnd. If valueEnd is null, the range is greater than equal to valueBegin.Expression returns selected data specified by returnType (See
MapReturnType). -
getByValueList
Create expression that selects map items identified by values and returns selected data specified by returnType (SeeMapReturnType). -
getByValueRelativeRankRange
public static Exp getByValueRelativeRankRange(int returnType, Exp value, Exp rank, Exp bin, CTX... ctx) Create expression that selects map items nearest to value and greater by relative rank. Expression returns selected data specified by returnType (SeeMapReturnType).Examples for map [{4=2},{9=10},{5=15},{0=17}]:
- (value,rank) = [selected items]
- (11,1) = [{0=17}]
- (11,-1) = [{9=10},{5=15},{0=17}]
-
getByValueRelativeRankRange
public static Exp getByValueRelativeRankRange(int returnType, Exp value, Exp rank, Exp count, Exp bin, CTX... ctx) Create expression that selects map items nearest to value and greater by relative rank with a count limit. Expression returns selected data specified by returnType (SeeMapReturnType).Examples for map [{4=2},{9=10},{5=15},{0=17}]:
- (value,rank,count) = [selected items]
- (11,1,1) = [{0=17}]
- (11,-1,1) = [{9=10}]
-
getByIndex
Create expression that selects map item identified by index and returns selected data specified by returnType (SeeMapReturnType). -
getByIndexRange
Create expression that selects map items starting at specified index to the end of map and returns selected data specified by returnType (SeeMapReturnType). -
getByIndexRange
Create expression that selects "count" map items starting at specified index and returns selected data specified by returnType (SeeMapReturnType). -
getByRank
Create expression that selects map item identified by rank and returns selected data specified by returnType (SeeMapReturnType). -
getByRankRange
Create expression that selects map items starting at specified rank to the last ranked item and returns selected data specified by returnType (SeeMapReturnType). -
getByRankRange
Create expression that selects "count" map items starting at specified rank and returns selected data specified by returnType (SeeMapReturnType).
-