這不像應該對某些相關屬性執行過濾器那麼簡單。 There is a pull request outstanding but it's been open for a long time now.據我所看到的,過濾的唯一方法是在主模式,所以你可以這樣做:
Tags.find({"include":"posts","where":{"id":{"inq":[1, 4]}}})
不幸的是,你需要做更多的工作,以獲得從文章的一個很好的列表你回來的結果。
編輯您也可以得到所有的帖子,只帶回符合使用scope
您查詢的標籤,有如下:
Posts.find({
"include": { "relation": "tags",
"scope": {
"where": {
"id": { "inq": [1, 4]}
}
}
}
});
在查詢的回調,你可以整理一下結果在返回之前使用以下代碼:
var finalresult = instance.filter(function(post) {
return post.toJSON().tags.length > 0;
});
好處是,返回的結果格式與您的預期相同。但是,我的第二個示例的性能可能非常差,因爲它將始終返回所有帖子,除非您在帖子級別指定過濾器或分頁。它基本上是一個左連接,在那裏你想要一個內連接,這個Loopback目前無法做到。
非常感謝!我現在這樣做,然後過濾出重複項。不過,我認爲這是LoopbackJS ORM的一個很大的限制,我正在重新考慮將它用於更大的項目。 – Nanunana
@Nanunana當我發現時,我無法相信......我做了更多的挖掘並找到了另一種方式。仍然不是很好,但也許更好一點。看我的編輯。 – conradj
Hy,我有一個hasOne關係,並且像這樣做的工作..但它包括關係字段連同主要對象..是否有可能使它分離?恩。可以說標籤有字段標記名..所以它來Post.tagname ..而不是Post.tag.tagname – mariomol