如何解决在猫鼬模式中,我应该嵌入用户对象,还是每当获取数据时都应该为用户运行查询?
我有这样的用户架构,
const userSchema = new Schema({
username: {
type: String,},email: {
type: String,thumbnail: {
type: String,default: backendURL + "images/blank-profile.png"
}
})
我有一个图像架构,其中嵌入了这样的用户对象,
const imageSchema = new Schema({
src: {
type: String,name: {
type: String,user: {
id: { type: String,required: true },thumbnail: { type: String },username: { type: String }
},comments: [{
comment: String,username: { type: String }
},}]
})
这很好,但是有问题。当用户尝试更改缩略图或用户名时,我需要更新整个图像以及与用户有任何关系的图像注释。我认为这将是非常繁琐的查询。 另一个选择是,如果我将图像架构设置为这样
const imageSchema = new Schema({
src: {
type: String,user:{type: String},userId:String
}]
})
,当我获取图像时,我还会为用户运行查询,这样我将获得包含用户信息的图像。但这也可能是沉重的代码,因为我将为所有用户运行查询。但是如果我这样做,则当用户更改自己的缩略图或用户名时,不需要更新用户。
我不知道哪种方式最适合我的情况。你们有什么主意或其他解决方案吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。