Forum Discussion
figured it out. the ID field needs to be assigned to $original.ID
The "orginal", which is case sensitive, lifts it into a sub-document in the json
which is then ignored by the SET, but you are still able to include it in the WHERE
(I had tried this already, but had typed it as Original, which didn't work, but revisited it once I found sometihng in the help for the SQL SERVER UPDATE Snap
- ionutbarna5 years agoNew Contributor II
Yes but .map() function transforms every element from the Array, I only need to change the fields where there are numbers. Is there a way that I can use conditional logic inside of the .map() function?( if typeof value == ‘number’ then value * 10 else value
Absolutely - the expression in the map function can use ternary logic just like you have in your example updating the object elements.
Assuming an input array:
{ "myArray": [ "abc", 13, "def", 15 ] }
This works as I believe you are requesting:
$myArray.map(x => x instanceof Number ? x * 10 : x){ "updatedArray": [ "abc", 130, "def", 150 ] }
- ionutbarna5 years agoNew Contributor II
You are right, in this case it works but in my case I have an array of objects which I finally managed to work with this:
jsonPath($, "$nested[*]").map(x => x.mapValues((value, key) => !isNaN(value) ? value * 10 : value))
Input:
"nested": [{"m": "hey", "o": 10, "p": "hello", "q": 100}]
Output:
"nested": [{"m": "hey", "o": 100, "p": "hello", "q": 1000}]
Thank you @koryknick for your guidance!
Related Content
- 4 months ago
- 4 months ago