How can i get a record and object ain arrays based on condition

I have the issue where I have contact records for users which can have one or more emails and phones. In my case my contact records store the phones and emails in an array of objects. I am wondering is there a way to get in a single result basic info from a doc like sample below as well as only get the emails and phones where dflt = true.
I want to avoid multiple query’s if possible.
Here is what i came up so far but not sure if best approach

SELECT c.username,
e AS email,
p AS phone
FROM Contacts c
UNNEST c.emails e
UNNEST c.phones p
WHERE c._type = ‘user’
AND c.username = ‘test_user’
AND e.dflt = TRUE
AND p.dflt = TRUE

{
“_id”: “8D6D33A5-D458-45DC-77AC-F257BDA133A4”,
“_type”: “user”,
“admin”: false,
“emails”: [
{
“address”: “testa@google,com”,
“dflt”: true,
“id”: “E78931A8-7FFF-4CC2-9137-958977D4E914”,
“name”: “Test A”,
“type”: “Other”
},
{
“address”: “demo2@outlook.com”,
“dflt”: false,
“id”: “000e8d1f-8153-4f3e-9e22-2b5be9fbcae4”,
“name”: “demo2@outlook.com”,
“type”: “default”
},
{
“address”: “demo2@yahoo.com”,
“dflt”: false,
“id”: “76a174db-48c0-4fc4-8f27-4b248af5c4f2”,
“name”: “demo2@yahoo.com”,
“type”: “Work”
}
],
“failed_login_count”: 0,
“locked”: false,

“name”: {
“fname”: “Demo”,
“lname”: “User”,
“mname”: “F”,
“suffix”: “”,
“title”: “”
},
“office365”: {
“id”: “98154852-2df2-4011-8f55-54ud55821e6”,
“name”: “Test user”
},
“office_address”: {
“address_line_1”: “35 Sunset Drive”,
“address_line_2”: “Suit 100”,
“city”: “Los Angeles”,
“state”: “CA”,
“zip”: “90017”
},
“password”: “”,
“password_experation”: “01/02/2020”,
“password_history”: ,
“phones”: [
{
“dflt”: false,
“id”: “F188F052-D759-4394-A6FE-E9E2A2423CFC”,
“name”: “T-Mobile Cell”,
“number”: “2135554141”,
“sms”: false,
“type”: “Other”
},
{
“dflt”: false,
“id”: “79c0ffa5-0c61-4d43-bdae-41fc3a117633”,
“name”: “Test 2”,
“number”: “2135551212”,
“sms”: true,
“type”: “Work”
},
{
“dflt”: true,
“id”: “9fb785b2-941a-4f60-b950-2a80bf18f6d1”,
“name”: “Office Nbr”,
“number”: “2135558484”,
“sms”: false,
“type”: “Work”
}
],
“username”: “test_user”
}

Another way of representation

SELECT c.username,
 ems AS emails,
phs AS phones
FROM Contacts c
LET ems = ARRAY e FOR e IN c.emails WHEN e.dflt = TRUE END,
          phs = ARRAY p FOR p IN c.phones WHEN p.dflt = TRUE END
WHERE c._type = "user" AND c.username = "test_user" 
                     AND (ARRAY_LENGTH(ems) > 0 OR  ARRAY_LENGTH(phs) > 0 );

If you think only one dflt = true

SELECT c.username,
FIRST e FOR e IN c.emails WHEN e.dflt = TRUE END AS email,
FIRST p FOR p IN c.phones WHEN p.dflt = TRUE END AS phone
FROM Contacts c
WHERE c._type = "user" AND c.username = "test_user" ;