2016-09-02 7 views
0

내 현재의 방식은몽구스로 물건을 채울 수 있습니까?

const departmentSchema = new mongoose.Schema({ 
    users: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] 
    ... 
}) 

는 지금은 각 사용자에게 ACL (역할)을 추가해야합니다. ACL은 사용자 근처에 저장해야하지만 동일한 사용자는 서로 다른 ACL에서 다른 ACL을 가질 수 있기 때문에 사용자 내부에 저장되어서는 안됩니다.

marketingDepartment: { 
    usersWithAcl: [ 
     { user:xxxxx, ACL: 'admin' }, 
     { user:yyyyy, ACL: 'employee' }, 
    ]} 

내가 find({}).populate('usersWithAcl.user') 같은 것을 사용하고 user 소품에 전체 사용자 개체를 얻으려면 :

그래서 나는이 같은이 방식을 사용할 계획입니다.

몽구스로 할 수 있습니까? 그렇다면 스키마를 구현하려면 어떻게해야합니까?

내 목표를 달성하기위한 더 좋은 해결책이 있습니까?

답변

2

예 개체 속성에서 채울 수 있습니다.

같은 :

const departmentSchema = new mongoose.Schema({ 
    usersWithAcl: [{ 
    user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, 
    ACL: String 
    },_id: false],//added _id: false to avoid generate mongoose id in usersWithAcl 
    //....... 
}) 
mongoose.model('Department', departmentSchema); 

및 채우기로 찾아

Department.find({}).populate('usersWithAcl.user') 
관련 문제