Query should not be passed as the first argument to Bulk::update(). As-is, the Query object was encoded as an empty BSON document and caused the update operation to match three documents instead of two. This happened to have no effect on the test result because arrayFilters ensured that only grades >= 100 were matched.