У меня проблема и я много искал в интернете безрезультатно. У меня есть база данных mongo, в которой есть такие данные
{
"_id":ObjectId("5ddfc2da7f86bf52c2472ea5"),
"sys":"2019-11-28",
"time":ISODate("2019-11-28T12:51:38.827Z"),
"time_rcvd":ISODate("2019-11-28T12:51:38.827Z"),
"msg":"51:37 Kayseri Netcom %%01SECLOG/6/SESSION_TEARDOWN(l):IPVer=4,Protocol=icmp,SourceIP=172.16.10.252,DestinationIP=10.10.0.26,SourcePort=8,DestinationPort=0,BeginTime=1574945475,EndTime=1574945475,SendPkts=1,SendBytes=60,RcvPkts=1,RcvBytes=60,SourceVpnID=0,DestinationVpnID=0,SourceZone=tunnel,DestinationZone=trust,PolicyName=tunnel_to_trust,CloseReason=aged-out.",
"syslog_fac":23,
"syslog_sever":6,
"syslog_tag":"12:",
"procid":"12",
"pid":"-",
"level":"INFO"
}
, что я делаю, чтобы получить данные из столбца msg и разделить их для отображения в моей системе, для которых я использую laravel. Моя проблема заключается в том, что когда пользователь хочет выполнить поиск
SourceIP = 172.16.10.252
, это заняло много времени, так как в моей базе данных более 3 миллионов записей. и я использую этот код для извлечения данных из Монго
$data = Logs::where('msg', 'like', '%SourceIP=172.16.10.252')->offset(10)->limit($limit )->get();
, но большая проблема - это нумерация страниц, мне нужно получить количество записей, чтобы сделать нумерацию страниц, но потребовалось много времени, чтобы получить счет,система должна быть быстрой, это код, который я использовал для подсчета
$totalrecords = Logs::where('msg', 'like', '%SourceIP=172.16.10.252')->count();
, поэтому, пожалуйста, помогите мне, если у вас есть какие-либо предложения по решению этой проблемы, так как это очень большая проблема для меня