1
1
.. _index-feature-case-insensitive:
2
2
3
3
========================
4
- Case Insensitive Indexes
4
+ Case- Insensitive Indexes
5
5
========================
6
6
7
7
.. default-domain:: mongodb
@@ -12,42 +12,59 @@ Case Insensitive Indexes
12
12
:depth: 2
13
13
:class: singlecol
14
14
15
- Case insensitive indexes support queries that perform string
16
- comparisons without regard for case.
15
+ Case-insensitive indexes support queries that perform string comparisons
16
+ without regard for case. Case insensitivity is derived from
17
+ :ref:`collation <collation>`.
17
18
18
- You can create a case insensitive index with
19
- :method:`db.collection.createIndex()` by specifying the ``collation``
20
- parameter as an option. For example:
19
+ .. important::
21
20
22
- .. code-block :: javascript
21
+ .. include :: /includes/indexes/case-insensitive-regex-queries.rst
23
22
24
- db.collection.createIndex( { "key" : 1 },
25
- { collation: {
26
- locale : <locale>,
27
- strength : <strength>
28
- }
29
- } )
23
+ Command Syntax
24
+ --------------
30
25
31
- To specify a collation for a case sensitive index, include:
26
+ You can create a case-insensitive index with
27
+ :method:`db.collection.createIndex()` by specifying the ``collation``
28
+ option:
32
29
33
- - ``locale``: specifies language rules. See
34
- :ref:`Collation Locales<collation-languages-locales>` for a list of
35
- available locales.
30
+ .. code-block:: javascript
36
31
37
- - ``strength``: determines comparison rules. A value of
38
- ``1`` or ``2`` indicates a case insensitive collation.
32
+ db.collection.createIndex(
33
+ {
34
+ <field>: <sortOrder>
35
+ },
36
+ {
37
+ collation:
38
+ {
39
+ locale : <locale>,
40
+ strength : < 1 | 2 >
41
+ }
42
+ }
43
+ )
44
+
45
+ To specify a collation for a case-insensitive index, include the
46
+ following fields in the ``collation`` object:
47
+
48
+ .. list-table::
49
+ :header-rows: 1
50
+ :widths: 10 20
51
+
52
+ * - Field
53
+ - Description
54
+
55
+ * - ``locale``
56
+ - Specifies language rules. For a list of available locales, see
57
+ :ref:`collation-languages-locales`.
58
+ * - ``strength``
59
+ - Determines comparison rules. A ``strength`` value of 1 or 2
60
+ indicates case-insensitive collation.
39
61
40
62
For additional collation fields, see
41
63
:ref:`Collation<collation-document-fields>`.
42
64
43
65
Behavior
44
66
--------
45
67
46
- Using a case insensitive index does not affect
47
- the results of a query, but it can increase performance; see
48
- :ref:`Indexes <indexes>` for a detailed discussion of the costs and
49
- benefits of indexes.
50
-
51
68
To use an index that specifies a collation, query and sort operations
52
69
must specify the same collation as the index. If a collection has
53
70
defined a collation, all queries and indexes inherit that collation
@@ -58,26 +75,28 @@ Examples
58
75
59
76
.. _no-default-collation-example:
60
77
61
- Create a Case Insensitive Index
78
+ Create a Case- Insensitive Index
62
79
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63
80
64
- To use a case insensitive index on a collection with no default
81
+ To use a case- insensitive index on a collection with no default
65
82
collation, create an index with a collation and set the ``strength``
66
83
parameter to ``1`` or ``2`` (see
67
84
:ref:`Collation<collation-document-fields>` for a detailed
68
85
description of the ``strength`` parameter). You must specify the same
69
86
collation at the query level in order to use the index-level collation.
70
87
71
88
The following example creates a collection with no default collation,
72
- then adds an index on the ``type`` field with a case insensitive
89
+ then adds an index on the ``type`` field with a case- insensitive
73
90
collation.
74
91
75
92
.. code-block:: javascript
76
93
77
94
db.createCollection("fruit")
78
95
79
- db.fruit.createIndex( { type: 1},
80
- { collation: { locale: 'en', strength: 2 } } )
96
+ db.fruit.createIndex(
97
+ { type: 1 },
98
+ { collation: { locale: 'en', strength: 2 } }
99
+ )
81
100
82
101
To use the index, queries must specify the same collation.
83
102
@@ -99,7 +118,7 @@ To use the index, queries must specify the same collation.
99
118
100
119
.. _default-collation-example:
101
120
102
- Case Insensitive Indexes on Collections with a Default Collation
121
+ Case- Insensitive Indexes on Collections with a Default Collation
103
122
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104
123
105
124
When you create a collection with a default collation, all the indexes
0 commit comments