라이브러리
[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` 필드는 그룹당 포함된 문서의 목록입니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.