Misalnya, kode ini menghasilkan koleksi yang disebut "data" yang dibuat
var Dataset = mongoose.model('data', dataSchema);
Dan kode ini menghasilkan koleksi yang disebut "pengguna"
var User = mongoose.model('user', dataSchema);
Terima kasih
Misalnya, kode ini menghasilkan koleksi yang disebut "data" yang dibuat
var Dataset = mongoose.model('data', dataSchema);
Dan kode ini menghasilkan koleksi yang disebut "pengguna"
var User = mongoose.model('user', dataSchema);
Terima kasih
Jawaban:
Mongoose mencoba menjadi pintar dengan membuat nama koleksi Anda jamak. Namun Anda dapat memaksanya menjadi apa pun yang Anda inginkan:
var dataSchema = new Schema({..}, { collection: 'data' })
Struktur API mongoose.model adalah ini:
Mongoose#model(name, [schema], [collection], [skipInit])
Apa yang dilakukan luwak adalah, Ketika tidak ada argumen koleksi yang dilewatkan, Mongoose menghasilkan nama koleksi dengan membuat jamak nama model. Jika Anda tidak menyukai perilaku ini, berikan nama koleksi atau setel opsi nama koleksi skema Anda.
Contoh:
var schema = new Schema({ name: String }, { collection: 'actor' });
atau
schema.set('collection', 'actor');
atau
var collectionName = 'actor'
var M = mongoose.model('Actor', schema, collectionName);
Mulai dari mongoose 5.x Anda dapat menonaktifkannya sepenuhnya:
mongoose.pluralize(null);
Anda cukup menambahkan string sebagai argumen ketiga untuk menentukan nama sebenarnya dari koleksi tersebut. Memperluas contoh Anda, untuk mempertahankan nama sebagai data
dan user
masing - masing:
var Dataset = mongoose.model('data', dataSchema, 'data');
var User = mongoose.model('user', dataSchema, 'user');
Anda dapat menambahkan nama koleksi sebagai parameter ketiga. Lihat contoh menggunakan Ketikan:
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);
Menambahkan garismongoose.pluralize(null)
di file Mongoose Anda akan mencegah pluralisasi nama koleksi. Anda tidak perlu menambahkan baris ini ke file model Anda.
Seperti yang terlihat di sini .
Di akhir pendefinisian skema Anda di baris berikutnya Gunakan kode ini
module.exports = mongoose.model("State", "StateSchema", "state")
Asumsikan bahwa status Anda adalah apa yang ingin Anda gunakan pada db Anda untuk menghindari s sebagai status
Mongoose menyusun model untuk Anda ketika Anda menjalankan perintah ini
var schema = new mongoose.Schema({ name: 'string', size: 'string' });
var child = mongoose.model('child', schema);
Argumen pertama adalah nama tunggal koleksi model Anda. Mongoose secara otomatis mencari bentuk jamak, versi huruf kecil dari nama model Anda. Jadi, untuk contoh di atas, model anak adalah untuk koleksi anak di database.
Catatan: The .model()
fungsi membuat salinan skema. Pastikan Anda telah menambahkan semua yang ingin Anda skema, termasuk hook, sebelum menelepon .model()
!