2016-04-12 16 views
2

Tek bir satırda update ve replace yapmak için şık bir yol olup olmadığını düşünen var mı?RethinkDB bir satırda güncelleme ve değiştirme

Alanları kaldırmak ve aynı sorguda güncelleştirmek için r.row.without kullanmak istiyorum. gibi

şey:

r.db('db').table('table').get('item_id') 
      .update({ field_a:'value_a'}) 
      .replace(r.row.without(r.args(['field_b'])))` 

sadece iyi olurdu zincirleme ama bu (güncelleme değişiklik sonuç döndürür) çalışmaz.

cevap

2
r.db('db').table('table').get('item_id') 
    .replace(
     r.row.merge(
      function(doc){ 
       return {field_a: 'newval'} 
      } 
     ).without('field_b') 
    ) 

bir alan değiştirebilir ve aynı anda başka bir alanı kaldırmak için de .update({field_a: 'value_a', field_b: r.literal()}) yazabilir hile

+2

Teşekkürler @Neil, bir şeytan gibi çalışır! Sanırım anonim işlev olmadan da yapabilirsin. 'r.row.merge ({field_a: 'newval'}). ('Field_b')' olmadan – Sagivf

3

mi yapalım.

+0

Teşekkürler, daha önceki bir açıklama olmasına rağmen, daha büyük bir açıklama olduğunu düşünüyorum! – Sagivf

+0

Bu cevap şu an seçili olan doğru cevaptan daha kolay/okunabilir/düz-ileri – evilReiko