Я пытаюсь использовать CASL для проверки авторизации вложенных элементов.
Он использует мангуста для запроса данных и проверки доступа.
Мой домен таков:
- «Пользователь» может иметь больше «Транспортных средств»
- «Документ» должен иметь транспортное средство
Схема:
vehicle { users: [ {type: objectId, ref: 'user'} ] }
document { vehicle: {type: objectId, ref: 'vehicle' }}
Чтобы найти транспортное средство "по пользователю", я делаю:
db.getCollection('vehicle').find(
{ users: {$in: [ ObjectId("5ae1a957d67500018efa2c9d") ]} }
)
Это работает.
В коллекции документов есть такие записи:
{
"_id": ObjectId("5aeaad1277e8a6009842564d"),
"vehicle": ObjectId("5aea338b82d8170096b52ce9"),
"company": "Allianz",
"price": 500,
"date_start": ISODate("2018-05-02T22:00:00.000Z"),
"date_end": ISODate("2019-05-02T22:00:00.000Z"),
"createdAt": ISODate("2018-05-03T06:32:50.590Z"),
"updatedAt": ISODate("2018-05-03T06:32:50.590Z"),
"__v": 0
}
Чтобы найти документ «по пользователю», я делаю:
db.getCollection('document').find(
{ "vehicle.users": {$in: [ ObjectId("5ae1a957d67500018efa2c9d") ]} }
)
Это не работает. Можно ли сделать это в одном запросе "find"?