2016-08-23 1 views
0

мы используем rethinkdb с nodejs. У меня есть таблица пользователей, и я хочу, чтобы получить все IsActive пользователей, которые не находятся в userdetail таблицеrethinkdb получить всю запись не в другом документе

Таблица Пользователь

{ 
"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

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

Теперь я хочу, чтобы все IsActive пользователя кроме как с идентификаторами 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()) 
    }) 
}) 

Хотя он не может выполнять очень хорошо