Node.js sequelize嵌入有许多ID
我正在试验使用Ember数据的Ember应用程序和使用Sequelize.js从MySQL提供数据的node.js后端 我的问题是: 如果我有一个通过hasMany与Post模型关联的注释模型,那么预期的JSON by ember数据如下所示Node.js sequelize嵌入有许多ID,node.js,ember.js,ember-data,sequelize.js,Node.js,Ember.js,Ember Data,Sequelize.js,我正在试验使用Ember数据的Ember应用程序和使用Sequelize.js从MySQL提供数据的node.js后端 我的问题是: 如果我有一个通过hasMany与Post模型关联的注释模型,那么预期的JSON by ember数据如下所示 { "post": { "comment_ids": [1, 2, 3] } } 使用sequelize查询/生成此JSON而不需要昂贵的循环等的最佳方法是什么 评论模型有一个带有post_id的外键。我建议将责任推给客户端。您可以设置自
{
"post": {
"comment_ids": [1, 2, 3]
}
}
使用sequelize查询/生成此JSON而不需要昂贵的循环等的最佳方法是什么
评论模型有一个带有post_id的外键。我建议将责任推给客户端。您可以设置自定义序列化程序客户端,将数据重新格式化为ED的预期格式。此外,ED希望数据采用以下格式:
{
"post": {
"comments": [1, 2, 3]
}
}
App.Post = DS.Model.extend({
comments = DS.hasMany('comment')
});
或者,如果您选择在响应中包含注释
{
"post": {
"id": 1
"title": "Rails is omakase",
"comments": ["1", "2"],
"_links": {
"user": "/people/dhh"
},
},
"comments": [{
"id": "1",
"body": "Rails is unagi"
}, {
"id": "2",
"body": "Omakase O_o"
}]
}
您可以在此处阅读更多信息:
在某个时刻,有人将不得不循环(或迭代),迭代结果集以建立响应(或序列化响应客户端)并不是一种罕见的做法。我将它实现为:
// include comments
Post.all({
where: "..",
include: [Comment]
}).success(function(posts) {
// collect IDs
_.each(posts, function(element) {
element["comments"] = _.pluck(element.comments, 'id');
});
});
谢谢你的回答。我所寻找的是一种很好的方式,利用sequelize进行某种形式的加入,以添加到评论IDS中艺术家来自何处?@freakTheMighty edited-应该是传递给回调的帖子