SELECT ARRAY_CONCAT(TO_ARRAY(obj), ARRAY_REMOVE(t.level1_Arr[0].level2_Arr[0].level3_Arr ,obj)) AS level3_Arr_part
FROM default t USE KEYS ["TEST:1002"]
LET obj = FIRST level4_obj FOR level4_obj IN t.level1_Arr[0].level2_Arr[0].level3_Arr WHEN level4_obj.level4_Id == "L4_ID_1" END
SELECT ARRAY_INSERT(ARRAY_REMOVE(t.level1_Arr[0].level2_Arr[0].level3_Arr ,obj),0,obj)
FROM default t USE KEYS ["TEST:1002"]
LET obj = FIRST level4_obj FOR level4_obj IN t.level1_Arr[0].level2_Arr[0].level3_Arr WHEN level4_obj.level4_Id == "L4_ID_1" END
I have no idea how to replace this part for the sample document.
may be @vsr1 can help.
UPDATE default USE KEYS ["k01"] SET level1_Arr[0].level2_Arr[0].level3_Arr =
ARRAY_INSERT(ARRAY_REMOVE(level1_Arr[0].level2_Arr[0].level3_Arr ,FIRST level4_obj FOR level4_obj IN level1_Arr[0].level2_Arr[0].level3_Arr WHEN level4_obj.level4_Id == "L4_ID_1" END),0,FIRST level4_obj FOR level4_obj IN level1_Arr[0].level2_Arr[0].level3_Arr WHEN level4_obj.level4_Id == "L4_ID_1" END);
OR
UPDATE default USE KEYS ["k01"] SET level1_Arr[0].level2_Arr[0].level3_Arr =
ARRAY_PREPEND(FIRST level4_obj FOR level4_obj IN level1_Arr[0].level2_Arr[0].level3_Arr WHEN level4_obj.level4_Id == "L4_ID_1" END, ARRAY_REMOVE(level1_Arr[0].level2_Arr[0].level3_Arr ,FIRST level4_obj FOR level4_obj IN level1_Arr[0].level2_Arr[0].level3_Arr WHEN level4_obj.level4_Id == "L4_ID_1" END));
1st query is not working, got this error - “Invalid function ARRAY_INSERT. - at )”, 2nd query is working fine.
Couchbase version is 4.0.0.
But if i want to move the 3rd element to 2nd position and 2nd element as 3rd element, that means need to move the selected element just 1 position up, but not for the first element as there is no further moment for that.