Итак, у меня есть база данных mongo (21 тыс. Записей) с такими столбцами, как action (есть 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');
}
}
Но у сгенерированной коллекции было только одно поле - идентификатор.
Вот что-то, что работает (показывает, что он может работать с базой данных)
Controller:
public function database_test()
{
$actions = Action::groupBy('action')->get();
return view('database_test',compact('actions'));
}
view:
{{$actions}}
output:
[{"_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"}]
в конечном итоге я хочу получить два массива, один с именами действий, а другой с количеством раз, которое это действие было вызвано, чтобы поместить его в диаграмму.