-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
strcasecmp.txt
80 lines (54 loc) · 1.96 KB
/
strcasecmp.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
=========================
$strcasecmp (aggregation)
=========================
.. default-domain:: mongodb
.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: singlecol
Definition
----------
.. expression:: $strcasecmp
Performs case-insensitive comparison of two strings. Returns
- 1 if first string is "greater than" the second string.
- 0 if the two strings are equal.
- -1 if the first string is "less than" the second string.
:expression:`$strcasecmp` has the following syntax:
.. code-block:: javascript
{ $strcasecmp: [ <expression1>, <expression2> ] }
The arguments can be any valid :ref:`expression
<aggregation-expressions>` as long as they resolve to strings. For
more information on expressions, see :ref:`aggregation-expressions`.
Behavior
--------
.. |exp-has| replace:: :expression:`$strcasecmp` only has
.. include:: /includes/intro-aggregation-string.rst
For a case sensitive comparison, see :expression:`$cmp`.
Example
-------
Consider a ``inventory`` collection with the following documents:
.. code-block:: javascript
{ "_id" : 1, "item" : "ABC1", quarter: "13Q1", "description" : "product 1" }
{ "_id" : 2, "item" : "ABC2", quarter: "13Q4", "description" : "product 2" }
{ "_id" : 3, "item" : "XYZ1", quarter: "14Q2", "description" : null }
The following operation uses the :expression:`$strcasecmp` operator to
perform case-insensitive comparison of the ``quarter`` field value to
the string ``"13q4"``:
.. code-block:: javascript
db.inventory.aggregate(
[
{
$project:
{
item: 1,
comparisonResult: { $strcasecmp: [ "$quarter", "13q4" ] }
}
}
]
)
The operation returns the following results:
.. code-block:: javascript
{ "_id" : 1, "item" : "ABC1", "comparisonResult" : -1 }
{ "_id" : 2, "item" : "ABC2", "comparisonResult" : 0 }
{ "_id" : 3, "item" : "XYZ1", "comparisonResult" : 1 }