How do I set the identifier in MongoDB.Driver.Linq.MongoEnumerable.AllMatchingElements

If I am doing an ElementMatch Filter like

Builders.Filter.ElemMatch(c => c.Entries, t => t.Id == fromId)

then I want to only update the matching elements

var horseSet = Builders.Update.Set(c => c.Entries.AllMatchingElements(“IDENTIFIER”).Name, to.DisplayName);

How do I supply the identifier to the Filter, or is it autogenerated?

I think I figured it out, but it is very ugly!

// Setup the element match, why can't I specify an identifier here?
var filter = Builders<Cart>.Filter.ElemMatch(c => c.Entries, t => t.Id == fromId);

// Do the $set
var set = Builders<Cart>.Update.Set(c => c.Entries.AllMatchingElements("h").Name, to.DisplayName);

// Setup the array filter using non-type safe BsonDocuments!
var arrayFilters = new[] {
                new BsonDocumentArrayFilterDefinition<BsonDocument>(
                    new BsonDocument("h._id",
                        new BsonDocument("$eq", fromId)))
};

//Or, using json, I'm not sure which is worse
var arrayFilters = new JsonArrayFilterDefinition<Cart>($@"{{""h._id"": {{ $eq: ""{fromId}""}} }}" )


await Models.UpdateManyAsync(filter, set, new UpdateOptions
{
    ArrayFilters = arrayFilters
});