2016-11-09 3 views
0

사용자 ID 목록이 포함 된 문서의 배열이 있습니다.
이 사용자 ID 목록이있는 모든 문서를 찾고 싶습니다..contains with array를 사용하는 방법?

는 내가 같은 것을 할 수 알고 :이 위대한 일을 알고

r.db('unicorn') 
    .table('rooms').filter(function(doc){ 
    return doc('people').contains(
     "id-one","id-two" 
    ) 
    }) 

을,하지만 난 일을 하드 코딩해야합니다. 일치하는 값의 배열을 contains 함수에 전달하려면 어떻게해야합니까? 당신이 배열이있는 경우, 그래서

r.db('unicorn') 
    .table('rooms').filter(function(doc){ 
     return doc('people').default([]).setIntersection(
     ["id-one","id-two"] 
    ).count().eq(2) 
    }) 

: 조금 후

r.db('unicorn') 
    .table('rooms').filter(function(doc){ 
     return doc('people').default([]).setIntersection(myArr).count().eq(myArr.length) 
    }) 

답변

1

:

var myArr = ["id-one","id-two"]; 

당신은이 같은 쿼리를 작성할 수 있습니다

1

당신은 setIntersection을 사용하여 배열을 전달할 수 있습니다 파기, 가장 간단한 해결책은 args을 사용하는 것이 었습니다. 예제에서 조금 명백하지 않았습니다. 이 방법을 사용하면 동적 값을 전달하고 그 값을 사용하여 명령을 실행할 수 있습니다.

r.db('unicorn') 
    .table('rooms').filter(function(doc){ 
    return doc('people').contains(
     r.args(["id-one","id-two"]) 
    ) 
    }) 
+0

그 문제에 접근하는 것은 매우 멋진 방법입니다. D. 내가 r.args에 도착할 때까지 뭔가 비슷한 것을 시도하고 있었다. – Justin