라이브러리

[PHP] CollectionFind::groupBy - 그룹화 기준 설정




CollectionFind::groupBy

`CollectionFind::groupBy` 메소드는 MongoDB의 CollectionFind를 사용하여 데이터를 그룹화하는 데 사용됩니다. 이 메소드는 특정 필드를 기준으로 데이터를 그룹화하고, 그룹당 하나의 필드를 반환합니다.

예제

아래 예제는 `CollectionFind::groupBy` 메소드를 사용하여 데이터를 그룹화하는 방법을 보여줍니다.

#hostingforum.kr
php

use MongoDBClient;



$client = new Client('mongodb://localhost:27017');

$db = $client->mydatabase;

$collection = $db->mycollection;



// 데이터 삽입

$data = [

    ['name' => 'John', 'age' => 25, 'city' => 'New York'],

    ['name' => 'Alice', 'age' => 30, 'city' => 'Los Angeles'],

    ['name' => 'Bob', 'age' => 25, 'city' => 'New York'],

    ['name' => 'Charlie', 'age' => 30, 'city' => 'Los Angeles'],

];



$collection->insertMany($data);



// CollectionFind::groupBy 사용

$cursor = $collection->find()->groupBy('city');



// 결과 출력

foreach ($cursor as $group) {

    echo "City: " . $group['_id'] . "
";

    foreach ($group['docs'] as $doc) {

        echo "  - Name: " . $doc['name'] . ", Age: " . $doc['age'] . "
";

    }

}



위 예제에서, `CollectionFind::groupBy` 메소드는 `city` 필드를 기준으로 데이터를 그룹화합니다. 그룹당 하나의 필드를 반환하고, 그룹당 여러 개의 문서가 포함됩니다.

출력

출력 결과는 다음과 같습니다.

#hostingforum.kr


City: New York

  - Name: John, Age: 25

  - Name: Bob, Age: 25

City: Los Angeles

  - Name: Alice, Age: 30

  - Name: Charlie, Age: 30



그룹화 옵션

`CollectionFind::groupBy` 메소드는 옵션을 사용하여 그룹화 옵션을 지정할 수 있습니다. 예를 들어, `sort` 옵션을 사용하여 그룹을 정렬할 수 있습니다.

#hostingforum.kr
php

$cursor = $collection->find()->groupBy('city')->sort('age', 1);



위 예제에서, `sort` 옵션은 `age` 필드를 기준으로 그룹을 정렬합니다.

그룹화 필드

`CollectionFind::groupBy` 메소드는 그룹화 필드를 지정할 수 있습니다. 예를 들어, `city` 필드를 그룹화 필드로 지정할 수 있습니다.

#hostingforum.kr
php

$cursor = $collection->find()->groupBy('city');



위 예제에서, `city` 필드는 그룹화 필드로 지정됩니다.

그룹화 결과

`CollectionFind::groupBy` 메소드는 그룹화 결과를 반환합니다. 그룹화 결과는 다음과 같습니다.

#hostingforum.kr
php

[

    '_id' => 'New York',

    'docs' => [

        ['name' => 'John', 'age' => 25],

        ['name' => 'Bob', 'age' => 25],

    ],

],

[

    '_id' => 'Los Angeles',

    'docs' => [

        ['name' => 'Alice', 'age' => 30],

        ['name' => 'Charlie', 'age' => 30],

    ],

],



위 예제에서, 그룹화 결과는 `_id` 필드와 `docs` 필드로 구성됩니다. `_id` 필드는 그룹화 필드의 값이며, `docs` 필드는 그룹당 포함된 문서의 목록입니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 584 페이지

검색

게시물 검색