我最近继承了一个电子商务应用程序(Java / Struts),我正在移植到Rails。
问题是,我们经常需要通过查看日志文件来对订单进行取证,并且使用旧应用程序的日志(log4j文本墙),当几个人下订单时,很难理解单个订单同时进行。
所以我正在征求关于记录这些订单的良好策略的建议,比如可能根据唯一的购物车ID将每个订单记录到自己的MongoDB集合中?或者可以按IP地址分组?完全不同的东西?
基本上,记录在线商店的最佳方法是什么,以便回溯每个用户与网站的互动?
答案 0 :(得分:2)
您不应将每个订单记录到自己的集合中,因为集合会产生过多的开销。我有一个包含所有交互的集合。决定是否要为每个订单存储一个或多个文档。如果每个订单只存储一个文档,则该文档可以包含一系列“交互”文档。将另一个交互推送到每个文档很容易。
如果您要对交互进行大量切片和切割,那么我会说每个操作一个文档,为您将要执行的查询类型添加适当的索引。