I have two model group model and user model
user 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');
group 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');
so when user uploads new profile pic, url of that pic has been saved in user model but profile pic of that user should also automatically change in group members array.
You just need to change your schema into
var groupSchema = mongoose.Schema({members : [{
id : {
type : mongoose.Schema.Types.ObjectId,
ref : 'user'
},
otherprop1: String,
otherprop2 : String,
}]});
Then use populate to get user data in find
group.find({}).populate({path:"user", select: "firstName lastName profilePic"})