collation -- Tools for working with collations.#

Tools for working with collations.

class pymongo.collation.Collation(locale: str, caseLevel: bool | None = None, caseFirst: str | None = None, strength: int | None = None, numericOrdering: bool | None = None, alternate: str | None = None, maxVariable: str | None = None, normalization: bool | None = None, backwards: bool | None = None, **kwargs: Any)#
Parameters:
  • locale: (string) The locale of the collation. This should be a string that identifies an ICU locale ID exactly. For example, en_US is valid, but en_us and en-US are not. Consult the MongoDB documentation for a list of supported locales.

  • caseLevel: (optional) If True, turn on case sensitivity if strength is 1 or 2 (case sensitivity is implied if strength is greater than 2). Defaults to False.

  • caseFirst: (optional) Specify that either uppercase or lowercase characters take precedence. Must be one of the following values:

  • strength: (optional) Specify the comparison strength. This is also known as the ICU comparison level. This must be one of the following values:

    Each successive level builds upon the previous. For example, a strength of SECONDARY differentiates characters based both on the unadorned base character and its accents.

  • numericOrdering: (optional) If True, order numbers numerically instead of in collation order (defaults to False).

  • alternate: (optional) Specify whether spaces and punctuation are considered base characters. This must be one of the following values:

  • maxVariable: (optional) When alternate is SHIFTED, this option specifies what characters may be ignored. This must be one of the following values:

  • normalization: (optional) If True, normalizes text into Unicode NFD. Defaults to False.

  • backwards: (optional) If True, accents on characters are considered from the back of the word to the front, as it is done in some French dictionary ordering traditions. Defaults to False.

  • kwargs: (optional) Keyword arguments supplying any additional options to be sent with this Collation object.

class pymongo.collation.CollationStrength#

An enum that defines values for strength on a Collation.

PRIMARY = 1#

Differentiate base (unadorned) characters.

SECONDARY = 2#

Differentiate character accents.

TERTIARY = 3#

Differentiate character case.

QUATERNARY = 4#

Differentiate words with and without punctuation.

IDENTICAL = 5#

Differentiate unicode code point (characters are exactly identical).

class pymongo.collation.CollationAlternate#

An enum that defines values for alternate on a Collation.

NON_IGNORABLE = 'non-ignorable'#

Spaces and punctuation are treated as base characters.

SHIFTED = 'shifted'#

Spaces and punctuation are not considered base characters.

Spaces and punctuation are distinguished regardless when the Collation strength is at least QUATERNARY.

class pymongo.collation.CollationCaseFirst#

An enum that defines values for case_first on a Collation.

UPPER = 'upper'#

Sort uppercase characters first.

LOWER = 'lower'#

Sort lowercase characters first.

OFF = 'off'#

Default for locale or collation strength.

class pymongo.collation.CollationMaxVariable#

An enum that defines values for max_variable on a Collation.

PUNCT = 'punct'#

Both punctuation and spaces are ignored.

SPACE = 'space'#

Spaces alone are ignored.