zunionstore #
Computes the union of the provided sorted sets, and stores the result in a new sorted set.
Arguments #
zunionstore(dest, sources, [options]);
Arguments | Type | Description |
---|---|---|
dest | string | Target sorted set key |
sources | string[] | List of sorted set keys to join |
options | object | Optional query arguments |
options #
The options
arguments can contain the following option properties:
Property | Type (default) | Description |
---|---|---|
aggregate | string ("sum") | Specifies how members' scores are aggregated during the intersection. Allowed values: min , max , sum |
queuable | boolean ( | If true , queues the request during downtime, until connected to Kuzzle again |
timeout | number ( -1 ) | Time (in ms) during which a request will still be waited to be resolved. Set it -1 if you want to wait indefinitely |
triggerEvents | boolean ( false ) | If set to true , will trigger events even if using Embeded SDK. You should always ensure that your events/pipes does not create an infinite loop. Available since Kuzzle 2.31.0 |
weights | integer[] | List of multiplication factors to apply to sources sets, before aggregation. |
Resolve #
Resolves to the number of members added to the destination sorted set.
Usage #
try {
await kuzzle.ms.zadd('sset1', [
{member: 'foo', score: '42'},
{member: 'bar', score: '4'}
]);
await kuzzle.ms.zadd('sset2', [
{member: 'foo', score: '-29'},
{member: 'baz', score: '300'}
]);
// Sums scores of joined values
await kuzzle.ms.zunionstore('destsum', ['sset1', 'sset2']);
// Stores the minimum possible scores of joined values
await kuzzle.ms.zunionstore(
'destmin',
['sset1', 'sset2'],
{aggregate: 'min'}
);
// Prints:
// [ { member: 'bar', score: 4 },
// { member: 'foo', score: 13 },
// { member: 'baz', score: 300 } ]
console.log(await kuzzle.ms.zrange('destsum', 0, -1));
// Prints:
// [ { member: 'foo', score: -29 },
// { member: 'bar', score: 4 },
// { member: 'baz', score: 300 } ]
console.log(await kuzzle.ms.zrange('destmin', 0, -1));
} catch (error) {
console.error(error.message);
}
Edit this page on Github(opens new window)