laravel - 尝试输出组的名称和组的大小(有多少行符合条件)
问题描述
所以,我有一个 mongo 数据库填充(21k 个输入),其中包含操作(有 5 个不同的操作)id、时间等列。
我需要获取每个动作的名称,以及该动作发生了多少次。例如:USERPROPERTY_CHANGED - 755
我已经在这里尝试了Laravel Eloquent groupBy() 中的几乎所有内容,并且还返回了每个组的计数
然后我尝试创建另一个集合,在其中我逐个输入字段,然后获取它们,我的迁移如下所示:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class actionPopularity extends Migration
{
public function up()
{
Schema::create('actionPopularity', function (Blueprint $collection) {
$collection->Increments('id');
$collection->string('action');
$collection->integer('count');
});
}
public function down()
{
Schema::dropIfExists('actionPopularity');
}
}
但是这个生成的集合只有一个字段——id。
这是一种有效的方法(它表明它可以与数据库一起使用)
控制器:
public function database_test()
{
$actions = Action::groupBy('action')->get();
return view('database_test',compact('actions'));
}
看法:
{{$actions}}
输出:
[
{
"_id":
{
"action":"OBJECT_INSERT"
},
"action":"OBJECT_INSERT"
},
{
"_id":
{
"action":"OBJECT_MODIFY"
},
"action":"OBJECT_MODIFY"
},
{
"_id":
{
"action":"null"
},
"action":"null"
},
{
"_id":
{
"action":"USERPROPERTY_CHANGED"
},
"action":"USERPROPERTY_CHANGED"
},
{
"_id":
{
"action":"OBJECT_DELETE"
},
"action":"OBJECT_DELETE"
}
]
最终我想得到两个数组,一个带有动作名称,另一个带有该动作被调用的次数,将其放入图表中。
解决方案
请尝试以下代码:
public function database_test()
{
$actions = Action::select('action', 'count')->groupBy('action')->get()->toArray();
return view('database_test',compact('actions'));
}
推荐阅读
- java - 扫描java中每个字符的问题
- php - 如何检查 html/php 中的按钮是否被按下
- ruby-on-rails - 用于复杂类型数组的 Ruby on Rail 位运算符 (&)
- sql - 使用 SELECT 方法向 SQL 查询中的列添加数字值
- c# - 使用 USB 名称获取 USB 的序列号
- amazon-iam - AWS 假定角色无法在无服务器项目中执行 secretsmanager:GetSecretValue
- android - 我不能在我的模拟器上运行这个应用程序有人能帮我吗
- python - 在不同的会话中加载 TensorFlow 模型会产生不正确的结果
- javascript - 如果加载失败,如何重置 p5.js 草图
- python - 如果命令是函数的名称,如何运行函数?