4
我目前正在玩Sails.js测试版(v 0.10.0-rc4)中的关联。Sails.js中的多个关联
我想将多个数据库关联到一个结果(使用sails-mysql
)。
该协会看起来像这样Post
- >TagRelation
- >Tag
。而当我查询Post
表时,我希望返回的对象包含关联的Tag
名称。
该机型是这个样子:
// Post model
var Post = {
title: 'string',
body: 'string',
tag_relations: {
collection: 'TagRelation'
via: 'post_id'
}
};
// Tag Relation model
var TagRelation = {
post_id: {
model: 'Post'
},
tag_id: {
model: 'Tag'
}
};
// Tag model
var Tag = {
name: 'string',
tag_relations: {
collection: 'Tag',
via: 'tag_id'
}
};
现在,一旦我去http://localhost:1337/post/1
我会得到一个tag_relations
键JSON对象,包含TagRelation
对象的数组,但有办法取而代之的是他们所指的实际Tag
对象列表?还是有更好的方法来做到这一点?
我明白了!这似乎工作正常!除了纯粹的mysql查询之外,还有可能计算出有多少“关系”?另外,如果我不想为关系存储额外的数据(即用户标记了什么等),这是可能的吗? –
Sails目前不支持'has-many-through'关系,它允许您存储关于关系的额外数据,尽管它正在开发中。就计数关系而言,你可以执行'Post.findOne(1).populate('tags')。exec(function(err,post){console.log(post.tags.length);})'。有关详细信息,请参阅[填充]的文档(https://github.com/balderdashy/sails-docs/blob/master/reference/ModelMethods.md#populate-foreignkey-)。 – sgress454
好的,谢谢澄清。 –