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
好的,謝謝澄清。 –