Quantcast
Channel: Active questions tagged jq - Stack Overflow
Viewing all articles
Browse latest Browse all 657

Get unique objects and arrays based on key value

$
0
0

Is there a way to return a unique object/array when duplicates exist? Here's what I'm trying to do.

I have a payload like this:

{"data": [    {"account": "12xUoMKwf12ABjNx4VCvYcNkX79gW1kzz2JnBLxkFbjswRczRvM","amount": 7885016,"block": 470788,"gateway": "113kQU96zqePySTahB7PEde9ZpoWK76DYK1f57wyhjhXCBoAu88","hash": "DTU1GGfR0eU15hv6KiV_bg6FOJXfUWz4TjIq1H7TGy4","timestamp": "2020-08-28T01:29:46.000000Z"    }  ]}{"data": [    {"account": "12xUoMKwf12ABjNx4VCvYcNkX79gW1kzz2JnBLxkFbjswRczRvM","amount": 7885016,"block": 470788,"gateway": "113kQU96zqePySTahB7PEde9ZpoWK76DYK1f57wyhjhXCBoAu88","hash": "DTU1GGfR0eU15hv6KiV_bg6FOJXfUWz4TjIq1H7TGy4","timestamp": "2020-08-28T01:29:46.000000Z"    }  ]}{"data": [    {"account": "12xUoMKwf12ABjNx4VCvYcNkX79gW1kzz2JnBLxkFbjswRczRvM","amount": 8623955,"block": 470509,"gateway": "113kQU96zqePySTahB7PEde9ZpoWK76DYK1f57wyhjhXCBoAu88","hash": "5fQJY9MprH9b3IstVU1SdfBteUWoF_sdsVuiARPBtTY","timestamp": "2020-08-27T19:01:48.000000Z"    }  ]}

As you can see, the first 2 payloads are identical and the last one is unique. I need to get the unique objects and then sum up the .amount when they fall below a certain time period. Here's what I have so far

jq --arg this "$(date +%Y-%m-%dT%H:%M:%S)" '.data[] | select(.timestamp >= $this) | .amount'

Which gives me the amounts so I can sum them up but, it also contains the duplicates. What I would like to do is get the objects that are unique by their .hash The idea is to sum up the total amounts that fall within the given date


Viewing all articles
Browse latest Browse all 657

Trending Articles