gpt4 book ai didi

javascript - SailsJS v0.10 多模型关联

转载 作者:行者123 更新时间:2023-12-03 12:42:51 24 4
gpt4 key购买 nike

我有 3 个模型。用户、个人资料和评论。

个人资料是用户的关联(一对一),评论是个人资料的关联(一对多)。

用户模型:

attributes: {
profile: {
model: 'Profile'
},
}

配置文件模型:

attributes: {
comments: {
collection: 'profileComment',
via: 'profile'
}
}

评论模型:

attributes: {
profile: {
model: 'Profile'
},
}

获取用户个人资料工作正常:

User.findOneById(id)
.populate('profile')
.exec(function (err, user) {
// user.profile
});

但是我该如何用评论填充个人资料呢?

最佳答案

看来您可以通过在 profile 上设置 user 属性来返回您想要的内容:

attributes: {
comments: {
collection: 'profileComment',
via: 'profile'
},
user: {
model: 'User'
}
}

然后查询:

Profile.findOne({user: userId})
.populate('user')
.populate('comments')
.exec(function(err, profile) {
// use profile.user and profile.comments
});

但请记住,Waterline 目前并未实现真正的一对一关联,因此如果您将 Profile 实例的 user 属性设置为 123,相应的User实例不会自动设置其profile属性。这可能不是什么大问题 - 您始终可以查找 Profile 并填充 User,如上面的示例所示 - 但需要记住这一点。

您的另一个选择是保持原样并进行映射,如 this question and answer 中所示。 .

关于javascript - SailsJS v0.10 多模型关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474964/

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