こんにちは、次のように、スキーマ モデルを動的な名前で宣言するだけです。
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;
したがって、コードのどこでもこれを行うことができます:
var userAdress = require('address.js')(id_user);
var usrAdrs1 = new userAddress({...});
userAdrs1.save();
次に、mongo シェルに移動してコレクションをリストします (mydb を使用してからコレクションを表示します)。uid プレフィックス付きのアドレスの新しいコレクションが表示されます。このようにして、mongoose は異なるユーザー uid ごとに新しい 1 つのコレクション アドレスを作成します。