将元表加载为对象

时间:2016-03-14 23:17:37

标签: node.js bookshelf.js

我的数据库中有一个名为users的表。在此表中,我只存储用户ID,用户名和密码。现在,在另一个名为user_meta的表中,我有以下列:id, uid, meta_key, meta_value。我正在尝试找到一种方法让Bookshelf自动加载user_meta uid == userid中的所有记录,并将其存储为model.meta[meta_key] = meta_value。可悲的是,我找不到办法让这成为可能。

如果可能的话,第二步是将model.meta中的所有值保存回更新/插入,插入该用户ID不存在meta_key的记录,并更新它的位置。

1 个答案:

答案 0 :(得分:0)

尝试设置模型之间的关联(关系):

var User = bookshelf.Model.extend({
  tableName: 'users',
  meta: function() {
    return this.hasMany(Meta);
  }
});

var Meta = bookshelf.Model.extend({
  tableName: 'user_meta',
  user: function() {
    return this.belongsTo(User);
  }
});

http://bookshelfjs.org/#one-to-many