如何在 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"})
我有两个模型组模型和用户模型
用户模型:
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"})