If your record looks like this:
"people":[ "firstname": "Jimmie", "lastname": "Barninger", "zip_code": 12345 ,
"firstname": "John", "lastname": "Doe", "zip_code": null]
You will get matches for individual people in the array who only match one of your filters i.e. "firstname:Jimmie" "lastname":"Doe" will return the above record.
One way to solve this issue is by breaking down the record like this.
"people1":{ "firstname": "Jimmie", "lastname": "Barninger", "zip_code": 12345 }, "people2":{ "firstname": "John", "lastname": "Doe", "zip_code": null}
We have a guide for formatting and structuring your data here: https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/