Каковы хорошие способы хранения данных Google Analytics в MongoDB?
Каковы хорошие способы хранения данных Google 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 (Mapper объектных отношений Rails), есть дополнительная сложность для получения дополнительной модели.
1 ответ
Возможно, вы захотите посмотреть на использование upserts и оператора $ inc на счетчиках. Если количество просмотров страниц увеличивается, вы можете использовать что-то вроде этого (селектор, оператор, upsert установлен в true)
update( { page: 'product', id: 123, data: { pageviews: 222}) },
{ $inc : { pageviews: 1} },
{ upsert : true } )
Если для этой записи не существует документа, он создаст его, если он существует, будет увеличиваться количество просмотров страниц.
Все зависит от того, как формируются ваши данные.
Этот пост в блоге объясняет больше.