Ich dachte, die einfachste Sache eine flache Liste wäre:Was ist der effizienteste Weg, um eine Baumstruktur in MongoDB zu speichern?
{
id: ObjectId()
parentId: ObjectId()
value: ‘foo’,
}
Nur eine große Sammlung. Um die untergeordneten Knoten eines Knotens zu finden, durchsuchen Sie die Liste und suchen Sie alle Instanzen, in denen die parentId der aktuellen Knoten-ID entspricht. Indizes auf ID/ParentId.
Dies könnte für Schreibvorgänge schneller sein, aber Lesevorgänge können ziemlich schrecklich werden. Und wir werden viel mehr lesen als schreiben!
MongoDB hat eine Art von in Baumdatenstruktur aufgebaut: https://docs.mongodb.com/manual/applications/data-models-tree-structures/
Aber ich frage mich, wie das wie das von einer flachen Liste unterscheidet ich vorgeschlagen.
Es wäre nicht so schlimm. Aber jedes Mal, wenn Sie die Kinder eines Knotens finden mussten, mussten Sie sich die gleiche Sammlung ansehen und sie erneut lesen. Worst Case ich denke, ist log (n) Zeit, das ganze Ding mit einem Index darauf zu lesen. –
@AlexanderMills ja, aber sie sind wirklich schnell wegen der Größe der Baum Eimer. Ich habe meine Antwort aktualisiert. – Lucas