javascript - mongoosejs - Cómo obtener el esquema de la base de datos de mangosta que se define en otro modelo
node js mongoose model (3)
Esta es mi estructura de carpetas:
+-- express_example
|---- app.js
|---- models
|-------- songs.js
|-------- albums.js
|---- and another files of expressjs
Mi código en el archivo songs.js
var mongoose = require(''mongoose'')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var SongSchema = new Schema({
name: {type: String, default: ''songname''}
, link: {type: String, default: ''./data/train.mp3''}
, date: {type: Date, default: Date.now()}
, position: {type: Number, default: 0}
, weekOnChart: {type: Number, default: 0}
, listend: {type: Number, default: 0}
});
module.exports = mongoose.model(''Song'', SongSchema);
Y aquí está mi código en el archivo albums.js
var mongoose = require(''mongoose'')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var AlbumSchema = new Schema({
name: {type: String, default: ''songname''}
, thumbnail: {type:String, default: ''./images/U1.jpg''}
, date: {type: Date, default: Date.now()}
, songs: [SongSchema]
});
module.exports = mongoose.model(''Album'', AlbumSchema);
¿Cómo puedo hacer que albums.js sepa SongSchema para ser definido AlbumSchema
Para obtener el esquema de un modelo Mongoose registrado, necesita acceder al esquema específicamente:
var SongSchema = require(''mongoose'').model(''Song'').schema;
Puede obtener modelos definidos en otra parte directamente con Mongoose:
require(''mongoose'').model(name_of_model)
Para obtener el esquema en su ejemplo en albums.js, puede hacer esto:
var SongSchema = require(''mongoose'').model(''Song'').schema
var SongSchema = require(''mongoose'').model(''Song'').schema;
La línea de código de arriba en tu albums.js
seguramente funcionará.