I need to update a field of one element from array sub document of a document.
MongoDB have the $ positional operator to do this. But in MongoDB C# driver version 2
You can try something like this.
var builder = Builders<Student>.Filter;
var filter = builder.Eq(student=> student.Id, 1) & builder.ElemMatch(student => student.Grades, x => x == 80);
var builder = Builders<Student>.Update;
var update = builder.Set(student => student.Grades[-1], 82);
var result = collection.UpdateOne(filter, update);