Esta es mi estructura de carpetas:Como llegar esquema de base de datos de la mangosta, que se define en otro modelo
+-- 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í es mi código en álbumes de archivos 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 albums.js saben SongSchema por definir AlbumSchema
Si con mi estructura de la base de esa manera, entonces 1 álbum que puedo almacenar muchos canción, es así?
Y por qué en app.js do:
'var Album = db.model ('Album'); var album = new Album(); album.songs.push ({_ id: '4f046b3bf71f5ed522000002'}); '
y obtengo el error' No se puede llamar al mtodo 'call' de undefined'
¿Cómo guardo la tienda a la derecha? –
Estaba obteniendo exactamente lo mismo. Terminó de arreglarlo usando 'var SongSchema = require ('mangosta'). Model ('Song'). Schema' en su lugar (es decir, agregué' .schema' para tomar el esquema del modelo específicamente). – jangosteve
Entonces, ¿cómo funciona esto cuando hay conexiones múltiples? ¿Cuál usa? – bryanph