Looks like this query would give you any tree watered before 5/5/2005, even if it had been watered since. I think you need 

```sql
WHERE m.model = 'Tree' AND MAX(m.data->waterdate) < '5/5/2005'
```

However, this aggregation would prevent you from doing a ``select *`` so it would need to be pushed down into a subquery that just returns ``tree_id`` that could be JOINed as a filter.