gpt4 book ai didi

Mongoose : Could we populate reference object to a alias/virtual property?

转载 作者:行者123 更新时间:2023-12-03 16:27:05 29 4
gpt4 key购买 nike

我正在寻找一种使用 mongoose 填充别名/虚拟属性的方法?

目前, Mongoose 的人口正在向引用属性添加更多字段(通常是身份 key )。
我想保留我的原始属性并将引用的数据填充到另一个属性。

例如:似乎我们需要更多关于架构的选项

profile_id: { type: mongoose.Schema.Types.ObjectId, ref: 'profiles', populateTo: 'profile' }

结果返回应该包含两个属性: profile_idprofile
找了一段时间,在github上发现了这个问题:( https://github.com/Automattic/mongoose/issues/3225

最佳答案

.您可以使用 填充引用对象虚拟属性(property) .
您需要做的就是在您的架构上定义一个虚拟属性,如下所示:

UserSchema.virtual('profile', {   
ref: 'Profiles', // the collection/model name
localField: 'profile_id',
foreignField: '_id',
justOne: true, // default is false
});
然后使用 populate 方法:
User.find({}).populate({ path: 'profile', select: 'name status' })
这将返回以下结果:
{   // USER
_id: 'xx...1',
username: 'alpesh',
profile_id: 'xx......7',
profile: { // POPULATED
name: 'Admin',
status: 'Active
}
}
请注意 - 如果您使用 nodejs/express:
使用 { toJSON: { virtuals: true } } 在定义架构时
引用 - https://mongoosejs.com/docs/populate.html

关于 Mongoose : Could we populate reference object to a alias/virtual property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929451/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com