CouchDB用于事件采购

时间:2014-05-31 11:13:10

标签: couchdb event-sourcing cloudant

我已经和CouchDB玩了一个星期了,我喜欢它;它可能是迄今为止我见过的最方便的NoSQL DB。

现在我正在考虑使用它(实际上是Cloudant)以事件采购的方式管理实体,但我怀疑CouchDB实际上是否适合这种情况......

假设我想管理一个“类型”,其“投影”类似于:

{
    "field1":"some-string",
    "field2":["an","array","of","strings"]
}

我会插入以下事件:

{ "type":"set-field1", "value":"another-string" }
{ "type":"remove-field2", "value":"strings" }
{ "type":"add-field2", "value":"bugs" }

正如您猜测的那样,我希望“投影”成为:

{
    "field1":"another-string",
    "field2":["an","array","of","bugs"]
}

现在我仍然是map / reduce中的菜鸟,但我的直觉是:

  • reduce必须是一些非常精心设计的JS,我读过的所有文档强烈建议使用内置函数简化函数
  • 即使地图是在添加/更新(并以某种方式删除)的对象上逐步执行的,我猜减少总是在地图的完整输出上执行,这使得前一点更加糟糕......

这就是我现在所处的位置。我在事件采购方法中发现的唯一关于CouchDB的是this article(当然只使用内置的_sum reduce!)。所以我很感谢CouchDB高级用户对我(适度)分析的相关性的任何建议/意见。

由于

0 个答案:

没有答案