2017-04-01 3 views
0

.map()을 사용한 후 얻은 새 값으로 결과를 정렬하려고합니다. 어떻게 관리 할 수 ​​있습니까? 나는 행운없이 API를 참조했다.값을 매핑 한 후 콜렉션 정렬/정렬

예를 들어 데이터베이스에 다른 통화 가격이 저장되어 있지만 매일 환율을 적용한 후 가격순으로 주문하고 싶습니다. 사전에

r.table('price_variants') 
    .orderBy({index: 'price'}) 
    .filter({'productID': product('id'), 'currentlyUsed': true}) 
    .limit(1) 
    .map(function(variant) { 
    variant = variant.merge({ 
     price: r.branch(
     variant 
      .hasFields('exchange_type') 
      .and(variant('exchange_type') 
      .eq('EURUSD')),      //IF EUR 
     variant('price').mul(exchangeRateUSDEUR), //THEN convert to USD 
     variant('price')),      //ELSE just use original price 
    ) 
    }) 
    }) 

감사 :

여기 내 ReQL 쿼리입니다!

답변

0

orderBy을 사용하여지도 전후에 결과를 정렬 할 수 있습니다. 예를 들면 다음과 같습니다.

r.table('foo') 
.map(function(foo){ 
    return foo.merge({c: foo('a').add(foo('b'))}); 
}) 
.orderBy('c') 

그러나 구체적인 예에는 몇 가지 문제가 있습니다. 그것은 단지 (때문에 .limit(1)의) 하나의 문서를 가지고 있기 때문에

  • 정렬은 무의미한 것 같다
  • 당신의 매핑 기능은 아무것도 반환하지 않습니다.