Каковы хорошие способы хранения данных Google Analytics в MongoDB? - PullRequest
5 голосов
/ 13 сентября 2010

Каковы хорошие способы хранения данных Analytics с использованием MongoDB для последующего анализа?Я думаю сделать что-то вроде:

> db.analytics.insert( { page: 'product', id: 123, date: new Date('Sept 8, 2010'),
                       pageviews: 222, timeOnPage: 5432 } )

> db.analytics.find()
{ "_id" : ObjectId("4c8e04b1f14d4366465197b8"), "page" : "product", "id" : 123, 
  "date" : "Wed Sep 08 2010 00:00:00 GMT-0700 (PDT)", "pageviews" : 222, 
  "timeOnPage" : 5432 }

, что довольно реляционно.Просмотры страниц и timeOnPage могут быть объединены в

> db.analytics.insert({page: 'product', id: 123, date: new Date('Sept 8, 2010'),
                       data: { pageviews: 222, timeOnPage: 5432 } })

, хотя, если использовать Mongoid (модуль сопоставления объектов Rails), то есть дополнительная сложность для получения дополнительной модели.

1 Ответ

5 голосов
/ 13 сентября 2010

Возможно, вы захотите посмотреть на использование upserts и оператора $ inc на счетчиках. Если количество просмотров страниц увеличивается, вы можете использовать что-то вроде этого (селектор, оператор, upsert установлен в true)

update( { page: 'product', id: 123, data: { pageviews: 222}) }, 
        { $inc : {  pageviews: 1} }, 
        { upsert : true } )

Если для этой записи не существует документа, он создаст его, если он существует, будет увеличиваться количество просмотров страниц.

Все зависит от того, как сформированы ваши данные.

Это сообщение в блоге объясняет больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...