Dieser Code führt beispielsweise dazu, dass eine Sammlung mit dem Namen "Daten" erstellt wird
var Dataset = mongoose.model('data', dataSchema);
Und dieser Code führt dazu, dass eine Sammlung namens "Benutzer" erstellt wird
var User = mongoose.model('user', dataSchema);
Vielen Dank
Antworten:
Mungo versucht klug zu sein, indem er Ihren Sammlungsnamen pluralisiert. Sie können es jedoch erzwingen, was immer Sie wollen:
var dataSchema = new Schema({..}, { collection: 'data' })
quelle
Die API-Struktur von mongoose.model lautet wie folgt:
Was Mungo tut, ist, dass Mongoose, wenn kein Sammlungsargument übergeben wird, einen Sammlungsnamen durch Pluralisieren des Modellnamens erzeugt. Wenn Ihnen dieses Verhalten nicht gefällt, übergeben Sie entweder einen Sammlungsnamen oder legen Sie die Option Name der Schemasammlung fest.
Beispiel:
oder
oder
quelle
Ab Mungo 5.x können Sie es vollständig deaktivieren:
quelle
Sie können einfach eine Zeichenfolge als drittes Argument hinzufügen, um den tatsächlichen Namen für die Sammlung zu definieren. Erweitern Sie Ihre Beispiele zu halten , Namen wie
data
unduser
jeweils:quelle
Sie können den Sammlungsnamen als dritten Parameter hinzufügen. Siehe das Beispiel mit Typescript:
quelle
Zeile hinzufügen
mongoose.pluralize(null)
in Ihrer Mongoose-Datei wird die Pluralisierung des Sammlungsnamens verhindert. Sie müssen diese Zeile nicht zu Ihren Modelldateien hinzufügen.Wie hier zu sehen .
quelle
Am Ende der Definition Ihres Schemas in der nächsten Zeile Verwenden Sie diesen Code
Angenommen, Ihr Status ist das, was Sie auf Ihrer Datenbank verwenden möchten, um s als Status zu vermeiden
Klicken Sie auf den Link, um das Bild richtig anzuzeigen
quelle
Mongoose kompiliert ein Modell für Sie, wenn Sie diesen Befehl ausführen
Das erste Argument ist der singuläre Name der Sammlung, für die Ihr Modell bestimmt ist. Mungo sucht automatisch nach der Pluralversion Ihres Modellnamens in Kleinbuchstaben . Für das obige Beispiel ist das untergeordnete Modell daher für die untergeordnete Sammlung in der Datenbank vorgesehen.
Hinweis: Die
.model()
Funktion erstellt eine Kopie des Schemas. Stellen Sie sicher, dass Sie vor dem Aufruf alles hinzugefügt haben, was Sie zum Schema hinzufügen möchten, einschließlich Hooks.model()
!quelle