Ich möchte eine _id als Eigenschaft für Objekte in einem Mongo-Array hinzufügen.
Ich nehme an:
%Vor%Strukturtyp für diese Frage.
Ist das eine gute Praxis?
Nicht normal. _id
s sind eindeutige Bezeichner für Entitäten. Wenn Sie also _id
innerhalb eines Unterdokuments hinzufügen möchten, haben Sie Ihre Daten möglicherweise nicht sehr gut normalisiert und dies könnte ein Zeichen für einen grundlegenden Fehler in Ihrem Schemadesign sein.
Unterdokumente enthalten wiederkehrende Daten für dieses Dokument, d. h. die Adressen oder einen Benutzer oder etwas.
Das heißt _id
ist nicht immer schlecht hinzuzufügen. Nehmen Sie das Beispiel, das ich gerade mit Adressen angegeben habe. Stellen Sie sich vor, Sie hätten ein Warenkorbsystem und (aus irgendeinem Grund) würden Sie die Adresse nicht in das Auftragsdokument replizieren, dann würden Sie ein _id
oder eine andere Kennung verwenden, um dieses Unterdokument herauszuholen.
Auch Sie müssen in Betracht ziehen, Dokumente zu verbinden. Wenn dieses _id
ein anderes Dokument beschreibt und die Eigenschaften benutzerdefinierte Attribute für dieses Dokument in Bezug auf das verlinkte Dokument sind, dann ist das auch in Ordnung.
Gibt es Probleme bei der Indexierung?
Ein ObjectId
ist immer noch recht groß, so dass man etwas über eine kleinere, weniger eindeutige ID in Betracht ziehen sollte oder gar kein _id
für Unterdokumente verwenden sollte.
Für Indizes funktioniert es nicht wirklich anders als das Standardfeld _id
im Dokument selbst und ein eindeutiger Index quer durch das Feld sollte innerhalb der Sammlung funktionieren (abhängig vom Szenario, testen Sie Ihre Abfragen).
Hinweis: MongoDB fügt für Ihre Unterdokumente kein _id
hinzu.
Tags und Links mongodb