Docs Menu

cursor.collation()

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

cursor.collation(<collation document>)

์ค‘์š”

Mongo์‰ฌ ๋ฐฉ๋ฒ•

์ด ํŽ˜์ด์ง€์—์„œ๋Š” mongosh ๋ฉ”์„œ๋“œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Node.js์™€ ๊ฐ™์€ ์–ธ์–ด๋ณ„ ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

MongoDB API ๋“œ๋ผ์ด๋ฒ„์˜ ๊ฒฝ์šฐ ์–ธ์–ด๋ณ„ MongoDB ๋“œ๋ผ์ด๋ฒ„ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์—์„œ db.collection.find() ๋ฐ˜ํ™˜ํ•œ ์ปค์„œ ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์ •๋ ฌ ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋ ค๋ฉด db.collection.find() ์— ์ถ”๊ฐ€ํ•˜์„ธ์š”.

cursor.collation() ๋Š” ๋‹ค์Œ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ๋ฌธ์„œ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

{
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

๋ฐ์ดํ„ฐ ์ •๋ ฌ์„ ์ง€์ •ํ•  ๋•Œ locale ํ•„๋“œ๋Š” ํ•„์ˆ˜์ด๊ณ , ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ํ•„๋“œ๋Š” ๋ชจ๋‘ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ํ•„๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•„๋“œ
์œ ํ˜•
์„ค๋ช…

locale

๋ฌธ์ž์—ด

ICU ๊ตญ๊ฐ€ ๋ฐ ์–ธ์–ด ์„ค์ •. ์ง€์›๋˜๋Š” ๊ตญ๊ฐ€ ๋ฐ ์–ธ์–ด ์„ค์ • ๋ชฉ๋ก์€ ์ง€์›๋˜๋Š” ๊ตญ๊ฐ€ ๋ฐ ์–ธ์–ด ์„ค์ •์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋‹จ์ˆœ ์ด์ง„ ๋น„๊ต๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด "simple"์˜ locale ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

strength

integer

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ˆ˜ํ–‰ํ•  ๋น„๊ต ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. ICU ๋น„๊ต ์ˆ˜์ค€์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

1

1์ฐจ ๋น„๊ต ์ˆ˜์ค€. ๋ฐ์ดํ„ฐ ์ •๋ ฌ์€ ๋ถ„์Œ ๋ถ€ํ˜ธ ๋ฐ ๋Œ€์†Œ๋ฌธ์ž์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ฐจ์ด์ ์„ ๋ฌด์‹œํ•˜๊ณ  ๊ธฐ๋ณธ ๋ฌธ์ž๋งŒ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

2

์„ธ์ปจ๋”๋ฆฌ ๋น„๊ต ์ˆ˜์ค€. ๋ฐ์ดํ„ฐ ์ •๋ ฌ์€ ๋ถ„์Œ ๋ถ€ํ˜ธ์™€ ๊ฐ™์€ ์ด์ฐจ์ ์ธ ์ฐจ์ด๊นŒ์ง€ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ์ •๋ ฌ์€ ๊ธฐ๋ณธ ๋ฌธ์ž(1์ฐจ ์ฐจ์ด)์™€ ๋ถ„์Œ ๋ถ€ํ˜ธ(2์ฐจ ์ฐจ์ด)์˜ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ฌธ์ž ๊ฐ„์˜ ์ฐจ์ด๋Š” ๋ถ„์Œ ๋ถ€ํ˜ธ ๊ฐ„์˜ ์ฐจ์ด๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

3

3์ฐจ ๋น„๊ต ์ˆ˜์ค€. ๋Œ€์กฐ๋Š” ๋Œ€์†Œ๋ฌธ์ž ๋ฐ ๋ฌธ์ž ๋ณ€ํ˜•๊ณผ ๊ฐ™์€ 3์ฐจ ์ฐจ์ด๊นŒ์ง€ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ์ •๋ ฌ์€ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฌธ์ž (์ฃผ์š” ์ฐจ์ด์ ), ๋ถ„์Œ ๋ถ€ํ˜ธ (2์ฐจ ์ฐจ์ด), ๋Œ€์†Œ๋ฌธ์ž ๋ฐ ๋ณ€ํ˜• (3์ฐจ ์ฐจ์ด) ์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ฌธ์ž ๊ฐ„์˜ ์ฐจ์ด๋Š” 2์ฐจ ์ฐจ์ด๋ณด๋‹ค ์šฐ์„ ํ•˜๋ฉฐ, 2์ฐจ ์ฐจ์ด๋Š” 3์ฐจ ์ฐจ์ด๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๊ธฐ๋ณธ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค.

4

4์ฐจ ์ˆ˜์ค€. 1-3์ฐจ ์ˆ˜์ค€์—์„œ ๊ตฌ๋‘์ ์„ ๋ฌด์‹œํ•˜๊ฑฐ๋‚˜ ์ผ๋ณธ์–ด ํ…์ŠคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ตฌ๋‘์ ์„ ๊ณ ๋ คํ•˜๋„๋ก ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

5

๋™์ผํ•œ ์ˆ˜์ค€. ํƒ€์ด ๋ธŒ๋ ˆ์ด์ปค (tie breaker)์˜ ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์—๋Š” ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ICU ๋ฐ์ดํ„ฐ ์ •๋ ฌ: ๋น„๊ต ์ˆ˜์ค€ ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

caseLevel

๋ถ€์šธ

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. strength ์ˆ˜์ค€ 1 ๋˜๋Š” 2์—์„œ ๋Œ€/์†Œ๋ฌธ์ž ๋น„๊ต๋ฅผ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

true ์ธ ๊ฒฝ์šฐ ๋Œ€์†Œ๋ฌธ์ž ๋น„๊ต๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰

  • strength:1์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์ •๋ ฌ์€ ๊ธฐ๋ณธ ๋ฌธ์ž์™€ ๋Œ€/์†Œ๋ฌธ์ž๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

  • strength:2์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์ •๋ ฌ์€ ๊ธฐ๋ณธ ๋ฌธ์ž, ๋ถ„์Œ ๋ถ€ํ˜ธ(๋ฐ ๊ธฐํƒ€ ๊ฐ€๋Šฅํ•œ 2์ฐจ ์ฐจ์ด) ๋ฐ ๋Œ€/์†Œ๋ฌธ์ž๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

false์ธ ๊ฒฝ์šฐ 1 ๋˜๋Š” 2 ์ˆ˜์ค€์—์„œ ๋Œ€์†Œ๋ฌธ์ž ๋น„๊ต๋ฅผ ํฌํ•จํ•˜์ง€ ๋งˆ์„ธ์š”. ๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ICU ๋ฐ์ดํ„ฐ ์ •๋ ฌ: ์‚ฌ๋ก€ ์ˆ˜์ค€์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

caseFirst

๋ฌธ์ž์—ด

์„ ํƒ ์‚ฌํ•ญ. 3์ฐจ ์ˆ˜์ค€ ๋น„๊ต ์‹œ ๋Œ€์†Œ๋ฌธ์ž ์ฐจ์ด์˜ ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ•„๋“œ์ž…๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

"upper"

๋Œ€๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž๋ณด๋‹ค ๋จผ์ € ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

"lower"

์†Œ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž๋ณด๋‹ค ๋จผ์ € ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

"OFF"

๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. "lower"์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐจ์ด์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://unicode-org.github.io/icu/userguide/strings/properties.html#customization์„ ์ฐธ์กฐํ•˜์„ธ์š”.

numericOrdering

๋ถ€์šธ

์„ ํƒ ์‚ฌํ•ญ. ์ˆซ์ž ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋น„๊ตํ• ์ง€, ์•„๋‹ˆ๋ฉด ๋ฌธ์ž์—ด๋กœ ๋น„๊ตํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

true ์ธ ๊ฒฝ์šฐ ์ˆซ์ž๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, "10" ๊ฐ€ "2" ๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.

false ์ธ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, "10" ๊ฐ€ "2" ๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค.

alternate

๋ฌธ์ž์—ด

์„ ํƒ ์‚ฌํ•ญ. ๋น„๊ต๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์ •๋ ฌ์—์„œ ๊ณต๋ฐฑ๊ณผ ๋ฌธ์žฅ ๋ถ€ํ˜ธ๋ฅผ ๊ธฐ๋ณธ ๋ฌธ์ž๋กœ ๊ณ ๋ คํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ•„๋“œ์ž…๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

"non-ignorable"

๊ณต๋ฐฑ๊ณผ ๋ฌธ์žฅ ๋ถ€ํ˜ธ๋Š” ๊ธฐ๋ณธ ๋ฌธ์ž๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

"shifted"

๊ณต๋ฐฑ๊ณผ ๊ตฌ๋‘์ ์€ ๊ธฐ๋ณธ ๋ฌธ์ž๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์œผ๋ฉฐ ๊ฐ•๋„ ์ˆ˜์ค€์ด 3๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋งŒ ๊ตฌ๋ณ„๋ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ICU ๋ฐ์ดํ„ฐ ์ •๋ ฌ: ๋น„๊ต ์ˆ˜์ค€ ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ๊ฐ’์€ "non-ignorable"์ž…๋‹ˆ๋‹ค.

maxVariable

๋ฌธ์ž์—ด

์„ ํƒ ์‚ฌํ•ญ. alternate: "shifted"์ผ ๋•Œ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๋ฌธ์ž๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ•„๋“œ์ž…๋‹ˆ๋‹ค. alternate: "non-ignorable"์ธ ๊ฒฝ์šฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

"punct"

๊ณต๋ฐฑ๊ณผ ๊ตฌ๋‘์ ์€ ๋ชจ๋‘ "๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค", ์ฆ‰ ๊ธฐ๋ณธ ๋ฌธ์ž๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"space"

๊ณต๋ฐฑ์€ "๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š”" ๋ฌธ์ž๋กœ, ๊ธฐ๋ณธ ๋ฌธ์ž๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

backwards

๋ถ€์šธ

์„ ํƒ ์‚ฌํ•ญ. ์ผ๋ถ€ ํ”„๋ž‘์Šค์–ด ์‚ฌ์ „ ์ˆœ์„œ์™€ ๊ฐ™์ด ๋ถ„์Œ ๋ถ€ํ˜ธ๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ๋ฌธ์ž์—ด ๋’ค์ชฝ๋ถ€ํ„ฐ ์ •๋ ฌํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

true์ด๋ฉด ๋’ค์ชฝ์—์„œ ์•ž์ชฝ์œผ๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

false์ด๋ฉด ์•ž์ชฝ์—์„œ ๋’ค์ชฝ์œผ๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค.

normalization

๋ถ€์šธ

์„ ํƒ ์‚ฌํ•ญ. ํ…์ŠคํŠธ์— ์ •๊ทœํ™”๊ฐ€ ํ•„์š”ํ•œ์ง€ ํ™•์ธํ•˜๊ณ  ์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ํ…์ŠคํŠธ์—๋Š” ์ด๋Ÿฌํ•œ ์ •๊ทœํ™” ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

true์ธ ๊ฒฝ์šฐ ์™„์ „ํžˆ ์ •๊ทœํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ…์ŠคํŠธ๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

false์ด๋ฉด ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ https://unicode-org.github.io/icu/userguide/collation/concepts.html#normalization์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋ฐฐํฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MongoDB Atlas: ํด๋ผ์šฐ๋“œ์—์„œ์˜ MongoDB ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค

์ฐธ๊ณ 

์ด ๋ช…๋ น์€ ๋ชจ๋“  MongoDB Atlas ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ช…๋ น์— ๋Œ€ํ•œ Atlas ์ง€์›์— ๊ด€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ช…๋ น์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

  • MongoDB Enterprise: MongoDB์˜ ๊ตฌ๋… ๊ธฐ๋ฐ˜ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

  • MongoDB Community: MongoDB์˜ ์†Œ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฌด๋ฃŒ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

๋‹ค์Œ ๋ฌธ์„œ๊ฐ€ ํฌํ•จ๋œ foo ์ปฌ๋ ‰์…˜์„ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "รก" }

๋‹ค์Œ ์ž‘์—…์€ x: "a" ์˜ ์ฟผ๋ฆฌ ํ•„ํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ์‚ฐ์—๋Š” locale: "en_US" (๋ฏธ๊ตญ ์˜์–ด ๊ตญ๊ฐ€ ๋ฐ ์–ธ์–ด ์„ค์ •) ๋ฐ strength: 1 (๊ธฐ๋ณธ ๋ฌธ์ž๋งŒ ๋น„๊ต, ๋Œ€์†Œ๋ฌธ์ž ๋ฐ ๋ฐœ์Œ ๊ตฌ๋ณ„ ๋ถ€ํ˜ธ ๋ฌด์‹œ)์ด(๊ฐ€) ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ •๋ ฌ ์˜ต์…˜๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

db.foo.find( { x: "a" } ).collation( { locale: "en_US", strength: 1 } )

์ด ์ž‘์—…์€ ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "รก" }

๋ฐ์ดํ„ฐ ์ •๋ ฌ(์˜ˆ: db.collection.find( { x: "a" } ))์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ ๋ฌธ์„œ์™€๋งŒ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

db.foo.find( { x: "a" } )

cursor.sort() ๋ฐ cursor.count() ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ปค์„œ ๋ฉ”์„œ๋“œ๋ฅผ cursor.collation() ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

db.collection.find({...}).collation({...}).sort({...});
db.collection.find({...}).collation({...}).count();

์ฐธ๊ณ 

ํ•œ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ •๋ ฌ์„ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•„๋“œ๋ณ„๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ •๋ ฌ์„ ์ง€์ •ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ •๋ ฌ๊ณผ ํ•จ๊ป˜ ์ฐพ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ฐพ๊ธฐ ์™€ ์ •๋ ฌ์—์„œ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ