Widzę trzy możliwe rozwiązania (to tylko moja opinia):
1.
public class Comment
{
...
public List<Comment> ChildComments {get;set;}
}
Plusy: możesz łatwo ładować, wyświetlać dane hierarchiczne. nie znasz komentarza rodzica z komentarza.
Wady: nie możesz pytać i aktualizować komentarza z jakimś identyfikatorem.
2.
public class Comment
{
...
public string ParentCommentId {get;set;}
}
Plusy: Możesz zapytać/zaktualizować, jak chcesz.
Wady: Duża liczba żądań do mongo, gdy potrzebujesz hierarchii obciążenia.
3. Mój ulubiony;) :
public class Comment
{
...
public string ParentCommentId {get;set;}
}
public class Article
{
...
public List<Comment> Comments {get;set;}
}
Plusy: Możesz zapytać/zaktualizować, jak chcesz. Możesz załadować artykuł ze wszystkimi komentarzami w jednym żądaniu. Nie trzeba przechowywać zbędnych typów artykułu i identyfikatora artykułu
Wady: Musisz załadować artykuł i zbudować hierarchię w pamięci.
Mam nadzieję, że pomoże to w dokonaniu wyboru.