我在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'
}
}
};
答案 0 :(得分:0)
假设:用户最多只能有一位经理,并且可能有很多下属。
在models/User.js
:
subordinates: {
collection: 'user',
via: 'manager'
},
manager: {
model: 'user'
}
使用.populate(),应返回用户的经理和下属。