I am looking for a way to conditionally combine Set operations. At the moment I have been unable to increment onto the updatedefinitions without having them consecutively dotted one after the other.

eg. instead of:

```
    Builders<BsonDocument>.Update.Set("someElement.Length", b.Length)
.Set("someElement.Path", b.Path)

```

I am trying to get find a way to use something in the vain of:

```
var update = Builders<BsonDocument>.Update;
bool hasChanged = false;
if (a.Length != b.Length)
{
    hasChanged = true;
    update.Set("someElement.Length", b.Length)
}
if (a.Path != b.Path)
{
    hasChanged = true;
    update.Set("someElement.Path", b.Path)
}

if (hasChanged)
    await someCollection.UpdateOneAsync(Builders<someModel>.Filter.Eq("_id", a.Id), update);

```

Is there a way of doing this or am I chasing a pie in the sky? I dont want to replace the entire document, and am looking to only update fields that have changed.