如何在 model2 中使用 model1 引用,以便 model1 中的更改自动反映在 model2 中

how to use model1 reference in model2 so that changes in model1 reflects in model2 automatically

我有两个模型组模型和用户模型

用户模型:

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');

组模型:

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');

因此,当用户上传新的个人资料照片时,该照片的 url 已保存在用户模型中,但该用户的个人资料照片也应在组成员数组中自动更改。

您只需要将架构更改为

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

}]});

然后在find中使用populate获取用户数据

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