Was ist der Unterschied zwischen EmbeddedDocumentField und ReferenceField in Mongoengine?

8

Was sind die Unterschiede zwischen diesen beiden Feldern? Welche Art von Schema werden diese Felder in Mongo zugeordnet? Wie sollten Dokumente mit Beziehungen zu diesen Feldern hinzugefügt werden? Zum Beispiel, wenn ich

benutze %Vor%

und rufe

an %Vor%

sollte ich post.comments.append (Kommentar) oder post.comments + = Kommentar zum Anhängen dieses Dokuments verwenden? Meine ursprüngliche Frage ergibt sich aus dieser Verwirrung darüber, wie ich damit umgehen soll.

    
user1876508 03.07.2013, 17:12
quelle

2 Antworten

9

EmbeddedDocumentField ist nur der Pfad des übergeordneten Dokuments wie DictField und wird in einem Datensatz mit dem übergeordneten Dokument in Mongo gespeichert.

Um EmbeddedDocument zu speichern, speichern Sie einfach das übergeordnete Dokument.

%Vor%

Siehe Dokumentation: Ссылка .

    
tbicr 04.07.2013, 06:01
quelle
0

Dies ist nur ein Beispiel, in dem wir eingebettete Dokumente verwenden können.

Sagen wir zum Beispiel, dass Sie eine App erstellen werden, die Anforderungen aufnimmt und sie in der DB speichert. Nun besteht Ihre Anforderung darin, diese Anforderung zu einem späteren Zeitpunkt nach einer gewissen Bearbeitung der Anforderung einer Gruppe von Personen zuzuweisen.

Sie müssen auch die Änderungen verfolgen und die Aktivität protokollieren, die sich auf die Verarbeitung bezieht, die in Bezug auf die Anforderung stattgefunden hat.

Ich weiß, ich weiß, dass Sie sagen könnten, wir könnten rdbms Art von Beziehung mit refference field verwenden. aber es beinhaltet das Entfernen von Obselete-Datensätzen in beiden Sammlungen, die nichts anderes als zusätzlichen Code sind, um die Pflege der Child-Collection zu übernehmen, wenn das Eltern-Dokument gelöscht wird. (Es gibt noch weitere zusätzliche Bemühungen, ...) / p>

Stattdessen werden eingebettete Dokumente als Teil des übergeordneten Dokuments gespeichert. Bei dem übergeordneten Objekt werden auch eingebettete Dokumente berücksichtigt.

und es wird einfach sein, komplexe json-strukturierte Daten mit Hilfe von eingebetteten Dokumenten zu erstellen, anstatt Benutzerlogik zu verwenden, um die Daten in einer komplexen Struktur zu bearbeiten und zu verarbeiten.

Jetzt Hier ist die Beziehung eine Anforderung an viele Handler (was nichts anderes ist als ein Aktivitätsprotokoll durch die Handler für die eine Anforderung).

    
BuzzR 15.02.2016 12:59
quelle