2015-11-20 45 views
2

這是一個很長的,但我想知道是否在rethinkDB,讓我們說我更新文檔。是否有一個神奇的函數,如果它是一個字符串或int字段,它只是更新它,但如果該字段的值是一個數組,它將它附加到數組?RethinkDB:​​更新文件

回答

3

在這種情況下,您需要使用.branch和分支類型。像.update(function(row) { return {field: r.branch(row('field').typeOf().eq('ARRAY'), row('field').add([el]), el)}; })

+0

愚蠢的問題,但確實行(「田」)工作的所有領域或我必須把它放在那裏? – Gakho

+0

您需要將該示例中的「field」替換爲您正在更新的特定字段。 – mlucy

2

有一個神奇的功能,做類似的事情。 .forEach有加號,結合陣列的無證行爲,並丟棄字符串:

>>> r.expr([{a:1, b:[2], c:"3"}, {a:2, b:[4], c:"6"}]).forEach(r.row) 
{"a": 3, "b": [2,4], "c": "3"} 
+0

字符串會發生什麼?它們是否被添加? – Gakho

+0

我已經更新了包含字符串的答案。 – AtnNn

+0

這很酷,它只是擔心它是無證的。 – Gakho