文章出處

分類統計

需求:

統計用戶點擊這三個分類的次數,用來分析用戶喜歡哪些話題。

實現原理:

通過給a標簽設置一個背景圖片屬性,當點擊的時候發送一條請求給服務器。

服務器端:
app.get('/stat',routes.stat);
數據庫:

設置相應的幾個字段

接著處理相應的請求,如下

請求的參數就是對應的key,因此只需要先將對應的數據先查詢出來,然后在其基礎上 + 1 即可。

對應的數據表

完。

統計首頁用戶請求來源

如果懂點HTTP該有多好,那是很久以后才明白的。

HTTP中的請求頭部有一個referer屬性,這個屬性記錄著用戶從哪個頁面過來的,因此只需要在服務器腳本中寫上這么一句就可以了。

nodejs中的

req.headers.referer

可以用來獲取來源。

在數據中查到的數據

完。

統計用戶訪問量

思路:

通過獲取用戶的IP地址來統計訪問量

實現方法:

nodejs通過如下可以獲取到用戶的ip

req.connection.remoteAddress
數據庫設計思路
[
	{
		visitorip:["127.0.0.1","162.124.0.24","182.150.1.56"],
		date:currentDate
	}
]

currentDate為當天的日期,將同一天訪問的ip,都添加到同一個數組中,否則新建一個對象。

實現過程

查詢當天有沒有相關的數據

false 新建一個對象,將對應的數據插入進去

true 在原數據的基礎上再添加一條,接著將這個新數組更新到數據庫中

一些亂想

在添加到數據庫之前,并沒有過濾重復IP,這樣的原因是:這些重復的數據也許有其他用處。

能保留完整的數據盡量保留完整,而過濾應該是單獨考慮的事。

用戶訪問量統計

獲取前幾天的訪問量將數組倒序一些即可,因為mongodb后添加的數據越往后。

這里的訪問量并不包括重復的IP,因此通過map方法將所有數據通過Set對象過濾,再取它的長度即可。

獲取到的數據

結果

一些問題

這個設計中,關于統計都是通過客服端或服務器來計算的,并沒有將這些計算的結果單獨設計一個字段,如果數據量較大的情況下,會不會出現什么問題,這是值得思考的問題。

完。


文章列表


不含病毒。www.avast.com
文章標籤
全站熱搜
創作者介紹
創作者 AutoPoster 的頭像
AutoPoster

互聯網 - 大數據

AutoPoster 發表在 痞客邦 留言(0) 人氣(1)