Hallo, Sie müssen nur das Schemamodell mit Ihrem dynamischen Namen deklarieren, etwa so:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// our schema
function dynamicSchema(prefix){
var addressSchema = new Schema({
dir : {type : String, required : true}, //los 2 nombres delimitados por coma (,) ej. Alberto,Andres
city : {type : String, required: true}, //la misma estructura que para los nombres ej. Acosta, Arteta
postal : {type : Number, required : true},
_home_type : {type : Schema.Types.ObjectId, required : true, ref : prefix + '.home_type'},
state : {type : String, required : true},
telefono : String,
registered : {type : Date, default: Date.now }
});
return mongoose.model(prefix + '.address', addressSchema);
}
//no we export dynamicSchema function
module.exports = dynamicSchema;
Sie können dies also überall in Ihrem Code tun:
var userAdress = require('address.js')(id_user);
var usrAdrs1 = new userAddress({...});
userAdrs1.save();
Gehen Sie nun zu Ihrer Mongo-Shell und listen Sie Sammlungen auf (verwenden Sie mydb und zeigen Sie dann Sammlungen an). Sie sehen eine neue Sammlung für die Adresse mit dem Präfix uid. Auf diese Weise erstellt Mongoose eine neue Sammlungsadresse für jede unterschiedliche Benutzer-UID.