从mongodb中选择数据,每列都有不同的架构

问题描述 投票:0回答:1

我有mongodb从防火墙接收数据,该防火墙根据它拥有的日志向mongo发送不同的数据,因此我的mongo集合具有不同的记录例如它有这样的记录

{“ _id”:ObjectId(“ 5df2194d2d81db5e845586d7”),“ sys”:“ 2019-11-28”,“ time”:ISODate(“ 2019-11-28T16:18:15.238Z”),“ time_rcvd”: ISODate(“ 2019-11-28T16:18:15.238Z”),“ msg”:“”,“ syslog_fac”:23,“ syslog_sever”:6,“ syslog_tag”:“ 16:”,“ procid”:“ 16 “,” pid“:”-“,”级别“:” INFO“,” logtype“:”交通日志“,” time2“:”星期四,2019年11月28日16:18:15 +0000“,” 18:14KayseriNetcom %% 01SECLOG / 6 / SESSION_TEARDOWN(l):IPVer“:” 4“,” Protocol“:” udp“,” SourceIP“:” 10.5.5.30“,” Country“:” 10.10.0.144“,” DestinationIP“: “ 10.10.0.144”,“ SourcePort”:“ 56215”,“ DestinationPort”:“ 162”,“ BeginTime”:“ 1574957770”,“ EndTime”:“ 1574957770”,“ SendPkts”:“ 1”,“ SendBytes”: “ 142”,“ RcvPkts”:“ 0”,“ RcvBytes”:“ 0”,“ SourceVpnID”:“ 0”,“ DestinationVpnID”:“ 0”,“ SourceZone”:“隧道”,“ DestinationZone”:“信任“,” PolicyName“:” tunnel_to_trust“,” CloseReason“:”老化“,” ApplicationName“:” SNMP“。 }

和其他类似记录

{“ _id”:ObjectId(“ 5df2194d2d81db5e845586d1”),“ sys”:“ 2019-11-28”,“ time”:ISODate(“ 2019-11-28T16:18:13.126Z”),“ time_rcvd”: ISODate(“ 2019-11-28T16:18:13.126Z”),“ msg”:“”,“ syslog_fac”:23,“ syslog_sever”:6,“ syslog_tag”:“ 16:”,“ procid”:“ 16 “,” pid“:”-“,”级别“:” INFO“,” logtype“:” URL LOGS“,” time2“:”星期四,2019年11月28日16:18:13 +0000“,” 18:12KayseriNetcom %% 01SECLOG / 6 / SESSION_TEARDOWN(l):IPVer“:” 4“,” Protocol“:” icmp“,” Country“:” 10.10.0.26“,” DestinationIP“:” 10.10.0.26“,” SourcePort“: “ 8”,“ DestinationPort”:“ 0”,“ BeginTime”:“ 1574957867”,“ EndTime”:“ 1574957867”,“ SendPkts”:“ 1”,“ SendBytes”:“ 60”,“ RcvPkts”:“ 0 “,” RcvBytes“:” 0“,” SourceVpnID“:” 0“,” DestinationVpnID“:” 0“,” SourceZone“:”隧道“,” DestinationZone“:”信任“,” PolicyName“:” tunnel_to_trust“, “ CloseReason”:“老化”。 }

因此,第一条记录具有ApplicationName列,但第二条记录没有该列,因此当我尝试通过此代码使用Laravel选择ApplicationName时>

$datas = Logss::select('ApplicationName')->offset(1)->limit( 10)->get()->toArray();

我收到此错误,因为第二行中没有ApplicationName

未定义的索引:ApplicationName

所以我该如何解决这个问题

我有mongodb从防火墙接收数据,此防火墙根据它所拥有的日志向mongo发送不同的数据,因此我的mongo集合具有不同的记录,例如...

laravel mongodb
1个回答
0
投票
如果使用的是jenssegers / laravel-mongodb模块(https://github.com/jenssegers/laravel-mongodb)。
© www.soinside.com 2019 - 2024. All rights reserved.