添加新单据后,couchDB能否自动更新特定单据?

添加新单据后,couchDB能否自动更新特定单据?,couchdb,Couchdb,我对CouchDB很陌生。我知道我可以创建从CouchDB之外的东西调用的reduce函数。但是,如果我希望CouchDB在向DB添加新文档时自动执行某些操作,该怎么办?例如,假设我有这个数据库: {_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} 现在假设我向数据库发送一个新的“事件”文档。cou

我对CouchDB很陌生。我知道我可以创建从CouchDB之外的东西调用的reduce函数。但是,如果我希望CouchDB在向DB添加新文档时自动执行某些操作,该怎么办?例如,假设我有这个数据库:

{_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能否自动计算“分数”值的平均值,并用新的平均值更新文档id 1?

否,couchDB无法立即完成此操作。通常,位于CouchDB之上的应用程序层将处理这种任意代码需求


然而,您的具体示例正是view reduce函数所适用的类型。如果这不仅仅是为了说明您的问题,实际上也是您想要做的,那么您应该使用reduce函数。

对我来说,您的问题与应用层中的变更提要()更相关

通常,您会将对特定数据库的请求更改序列号保持为open(longpoll)。在将文档插入到该数据库时,每次立即添加新文档时都会收到一个回调。在这个回调函数中,您可以轻松地更改另一个特定文档