emackey's answer is good, for the use case:
objects_x children of parent y = collection1
objects_z children of parent a = collection2
Three.js has an Object3D property called Layers, which allow this use case:
objects_x = collection1
objects_z = collection2
objects_x & objects_z = collection3
This allows partial display of collections, or for a single object to appear in multiple collections.
The only way I have found to do this is to manually assign Three.js Layer values to each object, like this:
gltf.scene.children[0].layers.enable(1);
camera.layers.enable(1)
You can then toggle the visibility of the objects in the layer 1 with the following:
camera.layers.toggle(1);
Have a look here for more detail: https://threejs.org/examples/#webgl_layers