2017-05-11 124 views
1

只有在文檔中的特定密鑰已更改(在SyncGateway中)或者可以通過LiveQueries實現以及如何實現時,Couchbase中是否有可能收到通知?Couchbase密鑰複製

{ 
"test": "BaseCouch" 
"test2": "foo" 
} 

更改爲:

{ 
"test": "CouchBase" 
"test2": "foo" 
} 

而不是讓通知只

事件:DOC的KEY改變從X到Y

回答

0

有幾個你可以做到這一點。

您可以在同步網關中設置一個同步功能,該功能只在該關鍵字的值發生變化時纔將文檔分配到特定通道。然後,您可以執行一些操作,例如運行偵聽該頻道的過濾複製,並使用更改偵聽器來通知您的應用。

您也可以使用實時查詢來做到這一點。最明顯的方法是創建一個帶有映射函數的視圖,該映射函數將該鍵/值作爲其索引。然後,只需設置一個實時查詢即可獲取有關視圖更改的通知。

您還可以設置一個通用數據庫更改偵聽器,並檢查要直接更改的值。

我可以想出其他的方法來做到這一點,但這些似乎是最明智的。您選擇的效率將取決於您的應用程序的具體情況。

+0

感謝您的回答。我想到了SyncGateway的例子,但似乎很少有收穫。 現在我使用的PullReplicator工作正常,但很多次我只更改我的文檔中的一個或兩個鍵,但因爲PullReplicator不知道它,它會完全同步。 你會推薦用PullReplicator做什麼(連續)。在使用LiveQuery的同時停止並使其成爲One-Shot? – pbertsch

+0

不知道我是否理解您的問題,LiveQuery響應本地數據庫中的更改。所以你通常希望拉複製繼續運行(因爲這是從SG的變化)。這是對這種情況進行更有效處理的路線圖,但沒有確認日期。 – Hod

+0

非常感謝@霍德,感謝您對此事的投入。 – pbertsch