我已经和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中的菜鸟,但我的直觉是:
这就是我现在所处的位置。我在事件采购方法中发现的唯一关于CouchDB的是this article(当然只使用内置的_sum reduce!)。所以我很感谢CouchDB高级用户对我(适度)分析的相关性的任何建议/意见。
由于