我们将rethinkdb与nodejs一起使用。我有一个用户表,我想得到所有isActive用户不在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
{
"id": "12" ,
"users": [{"userId":"1"},{"userId":"2"}]
}
现在我想要所有isActive用户,除了id为1和2
所以我试过以下查询,但它不能正常工作
r.db("mydb").table("users").filter( function(u)
{ return r.db("mydb").
table("userdetails")("userId").contains( u("id")
).not(); })
答案 0 :(得分: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())
})
})
虽然它可能表现不佳