簡體   English   中英

添加新文檔時,couchDB 能否自動更新特定文檔?

[英]Can couchDB automatically update a specific doc when a new doc has been added?

我對 CouchDB 很陌生。 我知道我可以創建從 CouchDB 之外的東西調用的 reduce 函數。 但是,如果我希望 CouchDB 在新文檔添加到數據庫時自動執行某些操作怎么辦? 例如,假設我有這個數據庫:

{_id:1, type:stats, meanscore:3}
{_id:2, type:event, date:02/01/2016, score:4}
{_id:3, type:event, date:02/02/2016, score:2}

現在說我向數據庫發送一個新的“事件”文檔。 couchDB 可以自動計算“分數”值的平均值並用新的平均值更新 doc id 1 嗎?

不,CouchDB 不能開箱即用。 通常,位於 CouchDB 之上的應用程序層將處理這種任意代碼需求。

但是,您的具體示例正是視圖減少功能的用途。 如果這不僅是為了說明您的問題,而且實際上是您想要做的,那么您應該使用 reduce 函數。

對我來說,您的問題與應用程序層中的更改提要( http://docs.couchdb.org/en/1.6.1/api/database/changes.html )的情況更相關。

一般而言,您持有對特定數據庫更改序列號的請求打開(longpoll)。 在將文檔插入到該數據庫時,每次立即添加新文檔時都會收到回調。 在此回調函數中,您可以輕松更改另一個特定文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM