我有一个Message Schema
跟一个User Schema
,我想要在message
文档中Populated Virtual
一个user
对象,然后重塑user
对象。
User Schema
const userSchema = new Schema({
'username': String,
'password': String,
});
module.exports = model('User', userSchema, 'users');
Message Schema
const sendMessageSchema = new Schema({
// 消息发送者UID。
'msgFrom': {
type: Schema.Types.ObjectId,
},
// 消息内容。
'msgContent': String,
// ...
}, {
toJSON: { virtuals: true },
toObject: { virtuals: true },
});
sendMessageSchema.virtual('user', {
ref: 'User',
localField: 'msgFrom',
foreignField: '_id',
justOne: true,
// getters: true,
// get: function() {
// 如何在这访问User的字段,有比先把User文档 Populated 给 msgFrom 字段再取的方法吗
// return {
// '_id': this._id,
// 'name': this.username,
// 'avatar': `https://dummyimage.com/200x200/00E67D/000.jpg&text=${this.username}`,
// };
// },
});