Couchdb文档中字段的最大数量是多少?

问题描述:

我正在评估couchdb的持久性购物车功能。如果我为每个用户创建一个文档并将每个购物车项目作为一个字段,则可以存储多少个项目?在目前的情况下,我可以在购物车中购买多达500件物品。Couchdb文档中字段的最大数量是多少?

the CouchDB overview的快速回顾应该清楚地表明,对于CouchDB文档中的字段数没有固有的限制,因此对您可以存储在购物车中的物品数量没有限制(除了可用内存) 。

doc-per-cart或doc-per-item都是很好的选择,这两种文档听起来都不会很大(对于非常大的文档JSON编码/解码速度较慢,而且它们必须完全保留在内存中) 。总的来说,我更喜欢doc-per-item。当然,如果您以doc-per-item的形式出现,您将需要创建一个(简单)视图来显示购物车。

喜欢doc-per-item的一个很好的理由是CouchDB的MVCC。将商品添加到购物车将始终创建新文档,因此您无需知道商品的当前_rev。当用户想要删除一个项目时,您将拥有_id和_rev,并且可以轻松删除它。如果你使用doc-per-cart,那么你将会不断地更新一个文档,这就要求你一直拥有当前的_rev。

请注意,doc-per-item将允许您的购物车中有重复项(用户点击重新加载并进行两次添加而不是一次),但只要购物车的显示屏显示此消息,并且最终结帐页也会显示,那么我认为这是一个合理的失败模式。

+0

doc-per-item很有意义,谢谢罗伯特。 – Romi