1.Использование позиционного оператора :
var query = Query.And(Query.EQ("Id", id));
var update = Update.Set("CommetList.10.Creator", "Jack");
Также вам, вероятно, нужно добавить id в класс Comment. В этом случае вы можете обновить сопоставленный запросом комментарий следующим образом:
var query = Query.And(Query.EQ("Id", id), Query.EQ("CommentList.Id", commentId));
var update = Update.Set("CommentList.$.Creator", "Jack");
2.Вы можете загрузить всю тему и сделать подкачку комментариев из c #, например, используя linq. Или вы также можете использовать $ slice вот так:
var comments = themeCollection
.FindAs<Comment>()
.SetFields(Fields.Slice("Comments", 40, 20))
.ToList();