不要在Sails.js的collection属性中按id记录排序
Don't order by id record in collection attribute with Sails.js
我正在制作Sails.js我正在尝试在我的播放列表模型中存储一些曲目。
是这样的:
Playlist = {
attributes : {
tracks: {
collection: 'track'
}
}
}
我的问题是,一个播放列表有一个曲目列表,其中曲目有一个特定的顺序。
例如,当我创建一个播放列表:
var tracksIds = [5,2,10];
// Create
Playlist.create({tracks: tracksIds})
// Return =>
Playlist = {
tracks: [2,5,10]
}
// Needed =>
Playlist = {
tracks: [5,2,10]
}
所以我的问题是:如何迫使Sails不按Id订购曲目集合中的记录?
谢谢的!
为了保存订单信息,您需要在某处添加一个order属性。
在纯关系数据库逻辑中,您希望在Playlist和Track之间有一个中间表。首先,因为many<->many关系需要它,其次,存储播放列表中曲目的顺序信息。
如何实现这在帆?文档明确指出这是不可能的:http://sailsjs.org/documentation/concepts/models-and-orm/associations/through-associations
他们建议您自己创建中间模型作为解决方法。
这意味着你有三个模型
- 播放列表
- PlaylistTrack(或PlaylistEntry等,无论你想要什么)
PlaylistTrack模型将与Track和Playlist以及order属性有一个1 ->多关系。像这样:
module.exports = {
attributes: {
playlist: {
model: 'playlist'
},
track: {
model: 'track'
},
order: 'integer'
}
}
您还需要将collection属性添加到Playlist。您可能还需要检查每个播放列表/曲目组合的顺序是否唯一。
现在您可以使用Model.sort()
方法来正确地排序轨道
相关文章:
- 将一个表的id与另一个表中的user_id进行匹配,以获取mysql中的记录
- 包含插入的Meteor方法没有返回记录ID作为结果
- MongoDB 2.0.0 驱动程序,按 ID 检索记录时出现问题
- 如何获取具有指针字段的对象 ID 的记录
- YDN 数据库 按 ID 删除记录 (索引数据库)
- Jqgrid 使用 afterSubmit 事件获取新添加记录的 ID
- 在行单击时,将记录 ID 传递给引导模式中的链接按钮
- 搜索Ember数据async hasMany id而不加载所有id记录
- SailsJS-使用自定义ID创建新记录
- 简单的coldfusion将记录id传递给JS函数
- 如何获取由填充对象中的特定许可证 ID 创建的记录
- 不要在Sails.js的collection属性中按id记录排序
- MS CRM 2015使用JavaScript编辑并显示来自另一个实体记录iFrame的id自定义实体记录
- 通过id和其他参数查找Ember-data记录
- 复制具有唯一id的记录
- YDN-DB -如何通过id更新记录
- 在Angularjs的控制器中显示创建的记录Id
- Ng-options显示名称但记录id
- 在Javascript中记录按钮id
- 如果使用laravel框架,如何在javascript或ajax中传递用户id以从数据库中获取记录