0
나는이처럼 보이는 프로그램 스키마이 그에게 그 문서를 보여주고 싶지 않습니다.몽구스 제한/허용 문서
이 비어 있지 않고 기록 된 사용자의 User._id가 들어있는 경우 그 사람에게도 문서를 표시하고 싶지 않습니다.
첫 번째 아이디어는 Program.find()가 모든 문서를 가져 왔을 때 각 문서를 반복하여 문서를 반환할지 여부를 확인하는 것이 었습니다.
그러나 forEach를 사용하는 것보다 나은 해결책이 있습니까? 그들이 반환되기 전에 몽구스 메서드와 필터 문서를 사용하는 것과 같은?
솔루션 왜 user.allowed
배열에 your_user_id
를 쿼리하지
var query = {
'active': true, //shows only active programs
$or: [{ 'user.allowed': {$size: 0} }, { 'user.allowed': req.user._id }], //true if allowed is empty or has userId in it
'user.restricted': { $ne: req.user._id } //true if restricted doesn't contain userId
};
Program.find(query, 'name owner image categories user special', function (err, p) {
if(err) { return handleError(res, err); }
})
.sort({_id: -1})
.exec(function(err, programs){
if(err) { return handleError(res, err); }
res.json(200, programs);
});