Ich bin gespannt auf die Vor- und Nachteile der Verwendung von Unterdokumenten gegenüber einer tieferen Ebene in meinem Hauptschema:
var subDoc = new Schema({
name: String
});
var mainDoc = new Schema({
names: [subDoc]
});
oder
var mainDoc = new Schema({
names: [{
name: String
}]
});
Ich verwende derzeit überall Subdocs, wundere mich aber hauptsächlich über die Leistung oder das Abfragen von Problemen, auf die ich stoßen könnte.
javascript
node.js
mongodb
mongoose
Cyberwombat
quelle
quelle
_id
Feld zu beschreiben ? Ich meine, es ist nicht automatisch, wenn es aktiviert ist?_id
Feld der Unterdokumente einzigartig ist? (erstellt mit dem 2. Weg in OPs Frage)Antworten:
Laut den Dokumenten ist es genau das gleiche. Die Verwendung eines Schemas würde jedoch auch ein
_id
Feld hinzufügen (sofern Sie dieses nicht deaktiviert haben) und vermutlich weitere Ressourcen zum Verfolgen von Subdocs verwenden.quelle
Wenn Sie Schemas haben, die in verschiedenen Teilen Ihres Modells wiederverwendet werden, kann es hilfreich sein, einzelne Schemas für die untergeordneten Dokumente zu definieren, damit Sie sich nicht duplizieren müssen.
quelle
Sie sollten eingebettete Dokumente verwenden, wenn es sich um statische Dokumente handelt oder aufgrund von Leistungseinbußen nicht mehr als einige Hundert. Ich habe mich vor einiger Zeit mit diesem Thema befasst. Neu war, dass Asya Kamsky, die als Lösungsarchitektin für MongoDB arbeitet, einen Artikel über "Verwenden von Unterdokumenten" geschrieben hat.
Ich hoffe, das hilft, wer nach Lösungen oder Best Practices sucht.
Ursprünglicher Beitrag auf http://askasya.com/post/largeembeddedarrays . Sie erreichen ihr Stackoverflow-Profil unter https://stackoverflow.com/users/431012/asya-kamsky
quelle
Erstellen Sie grundsätzlich eine Variable
nestedDov
und fügen Sie sie hier einname: [nestedDov]
Einfache Version:
JSON-Beispiel
Beispiel:
quelle
Ich denke, dies wird an anderer Stelle durch mehrere Posts auf SO behandelt.
Nur ein paar:
Der große Schlüssel ist, dass es hier keine einzige Antwort gibt, sondern nur eine Reihe ziemlich komplexer Kompromisse.
quelle
Es gibt einen Unterschied zwischen den beiden:
Die Verwendung eines verschachtelten Schemas ist hilfreich für die Validierung.
Verschachteltes Schema kann in anderen Schemas wiederverwendet werden.
quelle