根据帆中的父ID查找子数据(水线ORM)

时间:2017-07-17 14:22:21

标签: javascript orm nested sails.js waterline

我在sailsj中定义了一个简单的用户模型,如下所示。唯一需要注意的是,用户可以引用用户作为他们的经理。我试图理解的是,我如何查询这个模型,以便它将返回用户,如果这些用户中的任何一个是管理者,那么还包括那些子用户,依此类推。

在oracle中有一个"先前连接"但是,我没有成功找到帆(或水线)的东西。

module.exports = {

 attributes: {

  username: {
    type: 'string',
    unique: 'true',
    required: 'true'
  },

  systemRoleCd: {
    type: 'string',
    enum: ['normal', 'admin']
  },

  firstName: {
    type: 'string'
  },

  lastName: {
    type: 'string'
  },

  //The users direct manager
  manager: {
    model: 'User'
  },

  email: {
    type: 'string',
    email: 'true',
    unique: 'true'
  },

  //This is the encrypted password
  password: {
     type: 'string'
  },

  deleted: {
    type: 'boolean'
  }
 }
};

1 个答案:

答案 0 :(得分:0)

假设:用户最多只能有一位经理,并且可能有很多下属。

models/User.js

中试试
subordinates: {
  collection: 'user',
  via: 'manager'
},

manager: {
  model: 'user'
}

使用.populate(),应返回用户的经理和下属。