2016-08-23 2 views
0

우리는 nodejs와 함께 rethinkdb를 사용하고 있습니다. 나는 사용자 테이블을 가지고 있고 나는rethinkdb 다른 문서에없는 모든 레코드를 얻으십시오

{ 
"id": "12" , 
"users": [{"userId":"1"},{"userId":"2"}] 
} 

이제 userdetail 테이블에

사용자 표

{ 
"id": "1" , 
"fName": "A" , 
"lName": "B" , 
"isActive": true 
} 
{ 
"id": "2" , 
"fName": "C" , 
"lName": "D" , 
"isActive": true 
} 
{ 
"id": "3" , 
"fName": "E" , 
"lName": "F" , 
"isActive": true 
} 
{ 
"id": "4" , 
"fName": "G" , 
"lName": "H" , 
"isActive": false 
} 
{ 
"id": "5" , 
"fName": "I" , 
"lName": "J" , 
"isActive": true 
    } 

된 UserDetails없는 내가 모든이 isActive 사용자가 원하는 모든이 isActive 사용자를 얻으려면 id 1과 2를 제외하고

그래서 다음 쿼리를 시도했지만 그 n OT는

r.db("mydb").table("users").filter(function(u) 
{ return r.db("mydb"). 
table("userdetails")("userId").contains(u("id")   
).not(); }) 

답변

2

작업 아주 잘

을 수행 할 수 있지만 당신이

r.table('userdetails')('users').concatMap(r.row('userId')).coerceTo('ARRAY').do(
    function(userdetails) { 
    return r.table('user').filter(function(user) { 
     return user('isActive').and(userdetails.contains(user('id')).not()) 
    }) 
}) 

을 할 수 있습니다 어떤이 보인다

관련 문제