我正在使用MongoDB和Java的Apache日志进行统计分析项目。 Apache日志就像:
Tue, 13 Feb 2018 11:39:26.081 ;; ProcessId = 28889 ;; IPRequest = 10.160.74.43 ;; IPLocal = 10.160.85.46 ;; SizeResponseBytes = 2968 ;; TimeResponse = 14213 ;; Protocol = HTTP/1.1 ;; Port = 80 ;; Method = GET ;; Url = /login/ ;; Query = ;; HTTPstatus = 200 ;; BytesReceived = 479 ;; ByteSend = 3509 ;; Referer = - ;; ServerName = www.managercapture.com ;; UseCanonicalServerName = 10.160.85.46 ;; User-Agent = Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 ;; SessionID = -
这部分:
BytesReceived = 479 ;; ByteSend = 3509
是在HTTP请求中接收和发送的字节数据。
在Mongo,我有一个类似的集合:
{
date: yyyy/MM/dd HH:00:00
data: [
{second: 1, byteSent: 100, bytesReceived: 200},
{sedond: 44, byteSent: 322, bytesReceived: 150},
...
]
}
现在又来了一行{second: X, byteSent: 555, bytesReceived: 300}
。
我想知道我是否可以在一个查询中执行此操作:
date
和data.second
搜索文档,例如1
或3
。{second: 1, byteSent: 555+100, bytesReceived: 300+200}
){second: 3, byteSent:555, bytesReceived:300}
。)答案喜欢"这是不可能的,因为......"也欢迎,有参考等。