在CouchDB中存储用户活动

时间:2015-01-30 00:42:45

标签: logging couchdb

我是CouchDB和这些类型数据库的新手,所以我有一个问题:我应该如何存储每个用户的活动?我考虑将其存储为附件,使用用户db的用户ID将其存储在不同的数据库中。这些会以某种方式起作用,但似乎并不高效。我正在尝试开发跟踪应用程序,因此数据将快速增长。我必须开发一个我可以轻松管理和跟踪的数据库。您对在CouchDB中存储用户活动有什么建议?

1 个答案:

答案 0 :(得分:0)

我建议从主数据库创建一个单独的数据库,然后将每个活动作为单个文档存储在该数据库中。然后,您可以根据需要编写map / reduce视图以进行查询。

因此,如果您的主数据库是call" foo",请创建另一个名为" foo-activity"的数据库。然后将活动文档添加到" foo-activity"像这样:

{
  "user_id": 4242,
  "activity": "clicking",
  "url": "http://foo.bar",
  "timestamp": 121212213
}

然后,activity_by_time_and_user视图可能如下所示:

function(doc){
  if doc.activity and doc.user_id
    emit([doc.timestamp,doc.user_id], doc.activity)
}

然后,您可以根据时间范围进行用户搜索。