Node.js seqelizeembeddedhasMany ID

我正在试验一个使用ember-data的Ember应用程序和一个使用Sequelize.js从MySQL提供数据的node.js后端。

我的问题:如果我有一个评论模型关联到一个Post模型通过hasMany预期的JSON由ember-data看起来像

{ "post": { "comment_ids": [1, 2, 3] } } 

什么是最好的方式来查询/生成这个JSON没有昂贵的循环等使用sequelize?

注释模型有一个带有post_id的外键。

我去实施它像:

 // include comments Post.all({ where: "..", include: [Comment] }).success(function(posts) { // collect IDs _.each(posts, function(element) { element["comments"] = _.pluck(element.comments, 'id'); }); }); 

我build议把钱交给客户。 您可以设置自定义序列化客户端,将数据重新格式化为ED的预期格式。 此外,ED正在以这种格式期待它:

 { "post": { "comments": [1, 2, 3] } } App.Post = DS.Model.extend({ comments = DS.hasMany('comment') }); 

或者您select在回复中包含评论

 { "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" }] } 

你可以在这里阅读更多关于它的信息: https : //github.com/emberjs/data/blob/master/TRANSITION.md

在某些时候,某人将不得不循环(或迭代),遍历结果集来构build响应(或序列化响应客户端)并不罕见。