No it isn't possible and the reason is given in the use of the positional $
operator. And this says that even when used you will only ever get the first match found.
So something you did not do was try to match something in the array, in which you get a value in the positional operator to use as an index as in:
db.collection.update(
{ "packages.number": 1 },
{ "$inc": { "packages.$.number": 1 } }
)
But in general you cannot update all members of an array at once, you can only retrieve the document and then update in your client code before writing back.