# Copy data between each other by keys

**URL:** <https://forum.alumio.com/t/copy-data-between-each-other-by-keys/517>\
**Category:** General\
**Created:** [March 18, 2023, 1:48pm UTC](https://forum.alumio.com/t/copy-data-between-each-other-by-keys/517 "2023-03-18T13:48:44Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![Gugi](https://forum.alumio.com/user_avatar/forum.alumio.com/gugi/32/236_2.png) [@Gugi](https://forum.alumio.com/u/Gugi)\
**Post date:** [March 21, 2023, 4:59pm UTC](https://forum.alumio.com/t/copy-data-between-each-other-by-keys/517/6 "2023-03-21T16:59:29Z")

</div>

Hi @abubakar

You can [recursively copy](https://forum.alumio.com/t/recursively-copy-values-to-children/287) the root level’s `attributes` object into all the objects of `wProductVariantions` array as `match_attributes`. Then you can use the below [JMESPath](https://forum.alumio.com/t/use-jmespath-to-simplify-your-transformations/189) to filter out all objects that do not match the attributes object copied inside each `wProductVariants` objects.

```auto
&{wProductVariations[?attributes == match_attributes]}

```

Please give it a try and let us know if you have any questions.

---

_[View the full topic](https://forum.alumio.com/t/copy-data-between-each-other-by-keys/517)._
