2017-04-01 10 views
0

Ich möchte meine Ergebnisse nach den neuen Werten sortieren, die ich nach der Verwendung von .map() erhalte. Wie ist das überschaubar? Ich habe die API ohne Glück konsultiert.Sortieren/Sortieren nach Mapping-Werten

In meinem Beispiel habe ich Preise verschiedener Währungen in einer Datenbank gespeichert, aber ich möchte sie nach dem täglichen Wechselkurs nach Preis geordnet bekommen.

Hier ist meine ReQL query:

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 
    ) 
    }) 
    }) 

Vielen Dank im Voraus!

Antwort

0

Das Sortieren Ihrer Ergebnisse vor oder nach einer Karte kann mit orderBy erfolgen. Zum Beispiel:

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

Ihr spezifisches Beispiel hat jedoch einige Probleme, die Sie möglicherweise zuerst beheben müssen.

  • Sortierung scheint sinnlos, weil es nur ein Dokument hat (wegen .limit(1))
  • Ihre abgebildet Funktion nichts zurückgibt.
Verwandte Themen