If you want to rely on the engine physics (which is usually not recommended), could be possible to make a set of bodies with areas, on different masks and layers for + and - .
Positive charged bodies affected by one type of gravity areas and rejected by another, all using area space override.
Like:
Charge (body, pos/neg)
|-Rejection zone (Area)
|-Attraction zone (Area)
Charged bodies are on a specific layer.
Attraction zone affects bodies on the opposite charge-layer with a positive gravity.
Rejection zone affects bodies on the same charge-layer with a negative gravity.
Zones overlap, and need to exclude the parent body.
But if you are not used to the engine I suggest you to start with something more simple, not dealing with physics yet until you understand the engine features and feel confident to try complex setups.