title: Selecting a subset of properties from nested array of objects
body: <p>I have a deeply nested array of objects I am trying to pull a subset of key and values from.</p>
  
  <pre><code>[
      {
          "x": {
            "y": {
              "description": "jq rocks",
              "z": [
                {
                  "data_1": 123,
                  "data_2": [
                    {
                      "field_1": true,
                      "field_2": "hello",
                      "field_3": "red"
                    }
                  ]
                },
                {
                  "data_1": 123,
                  "data_2": [
                    {
                      "field_1": true,
                      "field_2": "goodbye",
                      "field_3": "blue"
                    }
                  ]
                },
                {
                  "data_1": 123
                }
              ]
            }
          }
      }
  ]
  </code></pre>
  
  <p>I am trying to extract field_2 and field_3, plus some other fields but the issue I'm running into is it seems to be combining every possible combination of field_2 and field_3.</p>
  
  <p>The jq I'm currently using is </p>
  
  <pre><code>jq '.[] | {
    "description": .x.y.description,
    "subset": [{
       "f_2": .x.y.z[].data_2[]?.field_2,
       "f_3": .x.y.z[].data_2[]?.field_3
    }]
  }' tmp.json
  </code></pre>
  
  <p>When using the example above it returns 4 entries in the array instead of just two.</p>
  
  <pre><code>"subset": [
    {
      "f_2": "hello"
      "f_3": "red"
    }
    {
      "f_2": "hello"
      "f_3": "blue"
    }
    {
      "f_2": "goodbye"
      "f_3": "red"
    }
    {
      "f_2": "goodbye"
      "f_3": "blue"
    }
  ]
  </code></pre>
  
  <p>How do I force jq to process each object in the data_2 array once?</p>