我需要检索一个对象并获取关系和嵌套关系。
所以,我有以下三个模型:
用户模型:
module.exports = {
attributes: {
name: {
type: 'string'
},
pets: {
collection: 'pet',
via: 'owner',
}
}
宠物模型:
module.exports = {
attributes: {
name: {
type: 'string'
},
owner: {
model: 'user'
},
vaccines: {
collection: 'vaccine',
via: 'pet',
}
}
疫苗模型:
module.exports = {
attributes: {
name: {
type: 'string'
},
pet: {
model: 'pet'
}
}
调用 User.findOne(name: 'everton').populate('pets').exec(....)
我获取了用户和关联的宠物。我怎样才能为每只宠物接种相关疫苗?我在官方文档中没有找到这方面的引用。
我也遇到了这个问题,据我所知,嵌套关联查询尚未内置到 sails 中(截至本文)。
您可以使用 Promise 来为您处理嵌套填充,但如果您填充许多级别,这可能会变得相当棘手。
类似于:
User.findOne(name: 'everton')
.populate('pets')
.then(function(user) {
user.pets.forEach(function (pet) {
//load pet's vaccines
});
});
这是 sails.js 上广泛讨论的主题,实际上有一个开放的拉取请求添加了此功能的大部分。查看https://github.com/balderdashy/waterline/pull/1052
我是一名优秀的程序员,十分优秀!