У меня есть 3 коллекции монго.
- Ресурс
- доступ
- Пользователь
пользователь связан с доступом, а доступ связан с ресурсом. Я хочу, чтобы при заполнении пользователя было выполнено все присоединение, и я вижу полный ресурс, к которому у пользователя есть доступ.
Я попробовал этот код, но не ожидал ответа
Users.findById(req.params.userId)
.populate({path:'accessID',model:'accesses'})
.populate({path:'accessID.accessLists',model:'resources'})
и это
Users.findById(req.params.userId)
.populate({path:'accessID',model:'accesses'})
.then
(
(user)=>
{
Users.populate(user,{path})
}
)
вот мои побеги
Ресурс:
var ResourceSchema =new Schema
({
resource:String
method:
{ type:String,
enum:["GET","PUT","POST","DELETE"]
}
})
Доступ:
var AccessSchema =new Schema
({
name:String
access_List:
[
{ type: Schema.Types.ObjectId, ref:'resources'}
]
})
Пользователь:
var UserSchema = new Schema
({
name:String,
email:String,
accessID:
{ type: Schema.Types.ObjectId, required: true, ref: 'accesses' }
)}
мой вывод вот так
{"accessID":
{
"_id": "5cef82d1d2f7e14d3013ac8c",
"accessLists":
[
"5cee8e093defe92b88c1626b",
"5cee8e093defe92b88c1626c",
"5cee8e093defe92b88c1626d",
],
"name": "Admin",
},
"name": "ali"
"email": "ali17@yahoo.com"
}
но я хочу, чтобы мой вывод был таким:
{
"name": "ali",
"email": "ali17@yahoo.com"
"accessID":
{
"_id": "5cef82d1d2f7e14d3013ac8c",
"accessLists":
[
{
"_id": "5cee8e093defe92b88c1626b",
"resource": "groups",
"method": "POST",
},
{
"_id": "5cee8e093defe92b88c1626c",
"resource": "groups",
"method": "DELETE",
},
{
"_id": "5cee8e093defe92b88c1626d",
"resource": "groups",
"method": "GET",
}
]
"name": "Admin",
}
}