Trouble with filters or ... 'Invalid $set :: caused by :: Unrecognized expression '$elemMatch''

DB version 4.4
Kotlin driver: kotlin-sync:4.11.0

I have a collection where the document has a field of type array. In my aggregation pipeline I want to add a new field when a filed of the array members is true:

{
   ...
   "existingField": [
      {..., "primary": true, ...},
      {..., "primary": false, ...}
   ],
...
}

In MongoDB Compass it is simply this: (and works fine)

{
  newField: {
    $filter: {
      input: "$existingField",
      as: "ent",
      cond: {
        $eq: ["$$ent.primary", true],
      },
    },
  },
}

However, in Kotlin the Aggregation build for this stage looking like this, throws a error.

fun onlyArrayMemberPrimaryValuesTrue(): Bson = Aggregates.set(
    Field("newField", Filters.elemMatch("existingField",
        Filters.eq("primary", true))
    )
)

I have tried a bunch of variations and gotten no luck, I also cannot find any examples documented on the way these should be appropriately built. What am I missing here?

The errrors show as: error : “Invalid $addFields :: caused by :: Unrecognized expression ‘$getField’”, “code”: 168, “codeName”: “InvalidPipelineOperator”…

Looking at that error, it is saying Unrecognized expression '$getField' Which is true, my DB is at v4.4 and the $getField is new in 5.0 Why is the driver not using 4.4 available api? mongodb.com/docs/manual/reference/operator/aggregation/getField The compatibility for the driver is listed as working on 4.4 mongodb.com/docs/drivers/kotlin/coroutine/current/compatibility