【发布时间】:2015-09-01 15:28:14
【问题描述】:
我有复杂的关系,包括 2 个彻底的模型。我想创建解决我的目的的自定义方法。我有 MySQL DB 作为数据源。
3 主要模型。
艺术家、专辑、歌曲。
专辑和歌曲通过模型“Tracklist”以 N:N 关系相互关联 2。 Artist 和 Tracklist 通过彻底的模型“TracklistArtist”连接。 我希望通过这种关系获得特定艺术家的专辑和歌曲列表。虽然我用补丁实现了,但它返回重复列表,同时我想要唯一的记录列表。请帮忙。
我只是在这里提到模型关系对象而不是完整的模型对象。
艺术家.json
{
"name": "Artist",
"relations": {
"tracklists": {
"type": "hasMany",
"model": "Tracklist",
"foreignKey": "",
"through": "TracklistArtist"
}
}
}
专辑.json
{
"name" : "Album",
"relations": {
"songs": {
"type": "hasMany",
"model": "Song",
"foreignKey": "",
"through": "Tracklist"
}
}
}
歌曲.json
{
"name" : "Song",
"relations": {
"albums": {
"type": "hasMany",
"model": "Album",
"foreignKey": "",
"through": "Tracklist"
}
}
}
tracklist.json
{
"name": "Tracklist",
"relations": {
"album": {
"type": "belongsTo",
"model": "Album",
"foreignKey": ""
},
"song": {
"type": "belongsTo",
"model": "Song",
"foreignKey": ""
},
"artists": {
"type": "hasMany",
"model": "Artist",
"foreignKey": "",
"through": "TracklistArtist"
}
}
}
tracklist-artist.json
{
"name": "TracklistArtist",
"relations": {
"artist": {
"type": "belongsTo",
"model": "Artist",
"foreignKey": ""
},
"tracklist": {
"type": "belongsTo",
"model": "Tracklist",
"foreignKey": ""
}
}
}
我已经从 mysql-connector 的 loopback 检查了补丁。 这是链接。 Check Here
Artist.tracklists({
id: $stateParams.artistId,
filter: {
groupBY:"albumId",
include: {relation: "album", scope: {}},
}
}).$promise.then(function (data) {
});
【问题讨论】:
-
可以显示您的实际代码/查询吗? stackoverflow.com/help/mcve
-
你需要我的关系模型的 json 吗??
-
这可能会有所帮助,以及用于获取特定艺术家的专辑和歌曲列表的代码的相关部分
-
这里提到了模型关系。因为我需要创建自定义函数所以我没有提到我写的代码。
-
太棒了 :) 最后一件事,你在数据库部分使用什么模块/框架/orm?
标签: node.js loopbackjs strongloop