Na przykład ten kod skutkuje utworzeniem kolekcji o nazwie „dane”
var Dataset = mongoose.model('data', dataSchema);
Ten kod skutkuje utworzeniem kolekcji o nazwie „użytkownicy”
var User = mongoose.model('user', dataSchema);
Dzięki
Na przykład ten kod skutkuje utworzeniem kolekcji o nazwie „dane”
var Dataset = mongoose.model('data', dataSchema);
Ten kod skutkuje utworzeniem kolekcji o nazwie „użytkownicy”
var User = mongoose.model('user', dataSchema);
Dzięki
Odpowiedzi:
Mongoose stara się być sprytny, używając liczby mnogiej nazwy kolekcji. Możesz jednak zmusić go do tego, co chcesz:
var dataSchema = new Schema({..}, { collection: 'data' })
Struktura API modelu mongoose.model jest następująca:
Mongoose#model(name, [schema], [collection], [skipInit])
Mongoose robi to, gdy nie jest przekazywany żaden argument kolekcji, Mongoose tworzy nazwę kolekcji, używając liczby mnogiej nazwy modelu. Jeśli nie podoba ci się to zachowanie, przekaż nazwę kolekcji lub ustaw opcję nazwy kolekcji schematów.
Przykład:
var schema = new Schema({ name: String }, { collection: 'actor' });
lub
schema.set('collection', 'actor');
lub
var collectionName = 'actor'
var M = mongoose.model('Actor', schema, collectionName);
Począwszy od Mongoose 5.x, możesz go całkowicie wyłączyć:
mongoose.pluralize(null);
Możesz dodać nazwę kolekcji jako trzeci parametr. Zobacz przykład przy użyciu Typescript:
import DataAccess = require('../DataAccess');
import IUser = require("../../Models/Interfaces/IUser");
var mongoose = DataAccess.mongooseInstance;
var mongooseConnection = DataAccess.mongooseConnection;
class UserSchema {
static get schema () {
var schema = mongoose.Schema({
_id : {
type: String
},
Name: {
type: String,
required: true
},
Age: {
type: Number,
required: true
}
});
return schema;
}
}
var schema:any = mongooseConnection.model<IUser>("User",
UserSchema.schema,"User");
export = schema;
//Mongoose's definition file. NOT your model files
1 const mongoose = require("mongoose");
2 mongoose.pluralize(null);
Dodanie linii mongoose.pluralize(null)
do pliku Mongoose zapobiegnie tworzeniu liczby mnogiej nazw kolekcji. Nie musisz dodawać tej linii do plików modelu.
Jak widać tutaj .
Pod koniec definiowania schematu w następnej linii Użyj tego kodu
module.exports = mongoose.model("State", "StateSchema", "state")
Zakładając, że Twój stan jest tym, czego chcesz użyć na swojej bazie danych, aby uniknąć stanów jako stanów
Mongoose kompiluje model dla Ciebie po uruchomieniu tego polecenia
var schema = new mongoose.Schema({ name: 'string', size: 'string' });
var child = mongoose.model('child', schema);
Pierwszym argumentem jest pojedyncza nazwa kolekcji, dla której przeznaczony jest model. Mongoose automatycznie szuka liczby mnogiej, małej wersji nazwy modelu. Dlatego w powyższym przykładzie model potomny jest przeznaczony dla kolekcji dzieci w bazie danych.
Uwaga:.model()
funkcja tworzy kopię schematu. Upewnij się, że dodałeś wszystko, co chcesz do schematu, w tym hooki, zanim zadzwonisz .model()
!