Passe uma instância de
UpdateOptions
como o parâmetro options em UpdateOneAsync(filter, update, options)
, por exemplo.:collection.UpdateOneAsync(p => p.Id == user.Id,
Builders<User>.Update.Set(p => p.Name, "John"),
new UpdateOptions { IsUpsert = true });
EDITAR
Para substituir o documento, chame
ReplaceOneAsync
em vez de:collection.ReplaceOneAsync(p => p.Id == user.Id,
user,
new ReplaceOptions { IsUpsert = true });