Это работает для меня. Однако мне было интересно, есть ли более «потоковый / высокогорный» способ выполнить sh this?
Я вытягиваю объекты с value: 'VALUE1'
и value: 'VALUE2'
и получаю список всех requiredId
s из 'VALUE1'
объектов, которые не имеют соответствующей записи с тем же requiredId
, но значением 'VALUE2'
Редактировать: известно, что setB является подмножеством setA.
const _ = require('highland');
...
const allObjectsStream = _(allObjects)
.where({ subset: 'subsetValue' })
const setAStream = allObjectsStream.fork();
const setBStream = allObjectsStream.fork();
const setAPromise = setAStream
.where({ value: 'VALUE1'})
.pluck('requiredID')
.collect()
.toPromise(Promise);
const setBPromise = setBStream
.where({ value: 'VALUE2'})
.pluck('requiredID')
.collect()
.toPromise(Promise);
const [As, Bs] = await Promise.all([setAPromise, setBPromise]);
const onlyInA = As.filter(x => !Bs.includes(x))