/ / ako používať odkaz na model1 v modeli2 tak, aby sa zmeny v modeli1 odrážali v modeli2 automaticky - node.js, mongoose, mongoose-schema, mongoose-populate

ako používať referenciu model1 v modeli 2 tak, aby sa zmeny v modeli odrážali v modeli automaticky - node.js, mongoose, mongoose-schema, mongoose-populate

Mám dva modelové skupinové modely a užívateľské modely

užívateľský model:

var mongoose    =   require("mongoose");
var userSchema  = mongoose.Schema({
profilePic : String,
firstName  : String,
lastName   : String,
dateOfBirth_DateObject     : {
type : Date ,
default : Date(1994-03-18)
},
yearOfBirth_Integer : {
type : Number,
default : 0
},
monthOfBirth_Integer  : {
type : Number,
default : 0
},
dayOfBirth_Integer : {
type : Number,
default : 0
},
gender_String  : String
)};
module.exports = mongoose.model("user", userSchema,"user");

skupinový model:

var mongoose       =   require("mongoose");
var groupSchema    =   mongoose.Schema({
members      :   [{
id      :   {
type : mongoose.Schema.Types.ObjectId,
ref  : "user"
},
firstName   :   String,
lastName    :   String,
profilePic :    String

}]
});

module.exports     =    mongoose.model("group", groupSchema,"group");

takže keď používateľ nahrá nový profilový obrázok, adresa URL tohto obrázka sa uložila do používateľského modelu, ale profilový obrázok tohto používateľa by sa mal automaticky meniť aj v poli členov skupiny.

odpovede:

0 pre odpoveď č. 1

Musíte len zmeniť svoju schému na

var groupSchema = mongoose.Schema({members : [{
id      :   {
type : mongoose.Schema.Types.ObjectId,
ref  : "user"
},
otherprop1:   String,
otherprop2  :   String,

}]});

Potom použite vyplnenie na získanie údajov používateľa v hľadaní

group.find({}).populate({path:"user", select: "firstName lastName profilePic"})