2017-04-01 5 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)の)一つの文書

  • を持っているので、

    • ソートは無意味なようです。
  • 関連する問題