If I execute an $all/$elemMatch on a collection for a field that is missing from a document in the collection, I get a "$all/$elemMatch needs to be applied to array" error. It can be reproduced in it's simplest form with the following:
> db.example.insert({})
> db.example.find({foo: { $all: [{ $elemMatch: { baz: 'Test'}}]}})
error:
>
The expectation is that no error is thrown and the lack of the field is simply ignored.