Docs Menu
Docs Home
/
MongoDB Atlas
/ /

Atlas SQL 문을 사용한 쿼리

이 페이지의 내용

  • 쿼리 예시
  • SELECT 문
  • LIMIT 문
  • WHERE 문
  • FLATTEN 및 UNWIND
  • FLATTEN
  • 평면화 예시
  • Unwind
  • 풀기(unwind) 예시
  • FLATTEN 및 UNwind 결합 예시

이 페이지에서는 Atlas SQL 쿼리의 예시를 제공합니다. SQL 구문을 사용하여 collection을 쿼리하는 기본 예제와 FLATTENUNWIND 를 사용하여 중첩 데이터로 작업하는 고급 예제를 찾을 수 있습니다.

고급 구성 샘플 연합 데이터베이스 인스턴스 에 대해 다음 Atlas SQL 쿼리를 실행 하거나 자체 데이터를 읽도록 수정하세요.

참고

SELECT * FROM sessions;

Atlas SQL이 Sessions 컬렉션의 모든 문서를 반환합니다.

SELECT * FROM users LIMIT 2;

Atlas SQL이 Users 컬렉션에서 두 개의 문서를 반환합니다.

SELECT * FROM users WHERE name = 'Jon Snow';

Atlas SQL은 사용자의 nameJon SnowUsers 컬렉션에서 문서를 반환합니다.

이 섹션에서는 문서 구조와 더 쉽게 상호 작용할 수 있는 두 가지 Atlas SQL 기능에 대해 설명합니다. 이는 고유한 Atlas SQL 기능입니다.

FLATTEN 반구조화된 데이터(JSON의 이름-값 쌍)를 별도의 열로 평탄화합니다. 필드 이름은 해당 필드의 모든 값을 행에 담는 열 이름이 됩니다.

중첩된 문서를 평면화하는 구문은 FROM 절에서 데이터 원본 및 옵션과 함께 사용할 수 있는 FLATTEN 함수입니다.

SELECT *
FROM FLATTEN(<data source>
WITH DEPTH => <integer>,
SEPARATOR => <string>
)
변수
필요성
설명
<data source>
필수 사항
평면화할 데이터 소스입니다.
DEPTH
옵션
평활화할 하위 문서의 레벨 수를 나타내는 양의 정수입니다. 기본적으로 모든 수준의 하위 문서를 평면화합니다.
SEPARATOR
옵션
필드 이름을 연결할 때 구분 기호로 사용할 string입니다. 기본값은 _입니다.

예시 시나리오에서 customerInfo 컬렉션에는 다음과 같이 구성된 문서가 포함되어 있습니다.

{
id: 1,
location: "New York",
customer: {
age: 50,
email: "customer@email.com",
satisfaction: 5
}
}

SELECT * FROM customerInfo 쿼리를 실행하면 Atlas SQL은 다음과 같은 최상위 필드가 있는 문서를 반환합니다.

id
1
location
"New York"
customer
{ 연령: 50, 이메일: "customer@email.com", 만족도: 5 }

SELECT * FROM FLATTEN(customerInfo) 쿼리를 실행하면 Atlas SQL은 다음과 같은 최상위 필드가 있는 문서를 반환합니다.

id
1
location
"New York"
customer_age
50
customer_email
"customer@email.com"
customer_satisfaction
5

FLATTEN을 사용하면 원본 문서의 각 평면화된 필드가 결과 집합의 최상위 필드가 됩니다. 중첩 필드는 상위 필드 이름과 연결되며 기본 구분 기호인 _로 구분됩니다.

UNWIND 입력 데이터 소스에서 배열 필드를 분해하여 해당 배열의 각 항목에 대해 하나의 행을 출력합니다. 언와인드에 대해 자세히 알아보려면 $unwind 애그리게이션 단계 문서를 참조하세요.

배열 필드를 푸는 구문은 FROM 절에서 데이터 소스 및 옵션과 함께 사용할 수 있는 UNWIND 함수입니다.

SELECT *
FROM UNWIND(<data source>
WITH PATH => <array_path>,
INDEX => <identifier>,
OUTER => <bool>
)
변수
필요성
설명
<data source>
필수 사항
풀려는 배열 필드의 소스입니다.
PATH
필수 사항
해제할 데이터 소스의 필드 경로입니다.
INDEX
옵션
이름을 입력하여 인덱스 열을 할당합니다. 생략하면 Atlas SQL에서 인덱스 필드를 만들지 않습니다.
OUTER
옵션
null, 누락 또는 빈 배열 값이 있는 문서의 보존 여부를 나타내는 플래그입니다. true인 경우 null, 누락 또는 빈 배열 값이 있는 문서가 보존됩니다. 기본값은 false입니다.

예시 시나리오에서 customerInfo 컬렉션에는 다음과 같이 구성된 문서가 포함되어 있습니다.

{
id: 1,
location: "New York",
customer: {
age: 50,
email: "customer@email.com",
satisfaction: 5
},
visits: [
{
year: 2020,
score: 10
},
{
year: 2021,
score: 8
},
{
year: 2022
score: 7
}
]
}

SELECT * FROM customerInfo 쿼리를 실행하면 Atlas SQL은 다음과 같은 최상위 필드가 있는 문서를 반환합니다.

id
1
location
"New York"
customer
{ 연령: 50, 이메일: "customer@email.com", 만족도: 5 }
visits
[ { year: 2020, score: 10 }, { year: 2021, score: 8 }, { year: 2022, score: 7 } ]

SELECT * FROM UNWIND(customerInfo WITH PATH => visits, INDEX => idx) 쿼리를 실행하면 Atlas SQL은 다음과 같은 최상위 필드가 있는 문서를 반환합니다.

id
1
1
1
location
"New York"
"New York"
"New York"
customer
{ 연령: 50, 이메일: "customer@email.com", 만족도: 5 }
{ 연령: 50, 이메일: "customer@email.com", 만족도: 5 }
{ 연령: 50, 이메일: "customer@email.com", 만족도: 5 }
idx
0
1
2
visits
{ year: 2020, score: 10 }
{ year: 2021, score: 8 }
{ year: 2022, score: 7 }

UNWINDPATH => visits와 함께 사용하면 각 visits 객체가 테이블 행이 됩니다.

다음 예시는 FLATTENUNWIND 함수를 결합한 것입니다.

예시 시나리오에서 customerInfo 컬렉션에는 다음과 같이 구성된 문서가 포함되어 있습니다.

{
id: 1,
location: "New York",
customer: {
age: 50,
email: "customer@email.com",
satisfaction: 5
},
visits: [
{
year: 2020,
score: 10
},
{
year: 2021,
score: 8
},
{
year: 2022
score: 7
}
]
}

SELECT * FROM customerInfo 쿼리를 실행하면 Atlas SQL은 다음과 같은 최상위 필드가 있는 문서를 반환합니다.

id
1
location
"New York"
satisfaction
5
customer
{ 연령: 50, 이메일: "customer@email.com", 만족도: 5 }
visits
[ { year: 2020, score: 10 }, { year: 2021, score: 8 }, { year: 2022, score: 7 } ]

Select * from FLATTEN(UNWIND(customerInfo WITH PATH => visits, INDEX => idx)) 쿼리를 실행하면 Atlas SQL은 다음과 같은 최상위 필드가 있는 문서를 반환합니다.

id
1
1
1
location
"New York"
"New York"
"New York"
satisfaction
5
5
5
customer_age
50
50
50
customer_email
"customer@email.com"
"customer@email.com"
"customer@email.com"
idx
0
1
2
visits_year
2020년
2021년
2022
visits_score
10
8
7

FLATTEN 함수와 UNWIND 함수를 모두 사용하면 visits 배열 이 풀린 다음 결과 문서 가 평면화됩니다.

돌아가기

Power BI