Comparison Functions Reference

Comparison Functions

Name Description
EQUAL Equality comparison
GREATER_THAN Greater than comparison
GREATER_THAN_OR_EQUAL Greater than or equal comparison
LESS_THAN Less than comparison
LESS_THAN_OR_EQUAL Less than or equal comparison
NOT_EQUAL Not equals comparison
CMP General comparison

EQUAL

Syntax:

 equal(x: ANY, y: ANY) -> BOOLEAN 

Examples:

x y equal(x, y)
1L
1L TRUE
1.0
1L TRUE
-1.0
1L FALSE
NaN
NaN TRUE
NULL
NULL TRUE
NULL
ABSENT FALSE

Description:

Returns TRUE if x and y are equal, and FALSE otherwise.

Node.js
 const 
  
 result 
  
 = 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 equal 
 ( 
 5 
 ). 
 as 
 ( 
 "hasPerfectRating" 
 )) 
  
 . 
 execute 
 (); 
  

Web

 const 
  
 result 
  
 = 
  
 await 
  
 execute 
 ( 
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 equal 
 ( 
 5 
 ). 
 as 
 ( 
 "hasPerfectRating" 
 )) 
 ); 
  
Swift
 let 
  
 result 
  
 = 
  
 try 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ([ 
 Field 
 ( 
 "rating" 
 ). 
 equal 
 ( 
 5 
 ). 
 as 
 ( 
 "hasPerfectRating" 
 )]) 
  
 . 
 execute 
 () 
  
Kotlin
Android
 val 
  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 equal 
 ( 
 5 
 ). 
 alias 
 ( 
 "hasPerfectRating" 
 )) 
  
 . 
 execute 
 () 
  
Java
Android
 Task<Pipeline 
 . 
 Snapshot 
>  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 equal 
 ( 
 5 
 ). 
 alias 
 ( 
 "hasPerfectRating" 
 )) 
  
 . 
 execute 
 (); 
  
Python
 from 
  
 google.cloud.firestore_v1.pipeline_expressions 
  
 import 
 Field 
 result 
 = 
 ( 
 client 
 . 
 pipeline 
 () 
 . 
 collection 
 ( 
 "books" 
 ) 
 . 
 select 
 ( 
 Field 
 . 
 of 
 ( 
 "rating" 
 ) 
 . 
 equal 
 ( 
 5 
 ) 
 . 
 as_ 
 ( 
 "hasPerfectRating" 
 )) 
 . 
 execute 
 () 
 ) 
  
Java
 Pipeline 
 . 
 Snapshot 
  
 result 
  
 = 
  
 firestore 
  
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 equal 
 ( 
 field 
 ( 
 "rating" 
 ), 
  
 5 
 ). 
 as 
 ( 
 "hasPerfectRating" 
 )) 
  
 . 
 execute 
 () 
  
 . 
 get 
 (); 
  

GREATER_THAN

Syntax:

 greater_than(x: ANY, y: ANY) -> BOOLEAN 

Description:

Returns TRUE if x is greater than y , and FALSE otherwise.

If x and y are not comparable, returns FALSE .

Examples:

x y greater_than(x, y)
1L
0.0 TRUE
1L
1L FALSE
1L
2L FALSE
"foo"
0L FALSE
0L
"foo" FALSE
NaN
0L FALSE
0L
NaN FALSE
NULL
NULL FALSE
Node.js
 const 
  
 result 
  
 = 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 greaterThan 
 ( 
 4 
 ). 
 as 
 ( 
 "hasHighRating" 
 )) 
  
 . 
 execute 
 (); 
  

Web

 const 
  
 result 
  
 = 
  
 await 
  
 execute 
 ( 
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 greaterThan 
 ( 
 4 
 ). 
 as 
 ( 
 "hasHighRating" 
 )) 
 ); 
  
Swift
 let 
  
 result 
  
 = 
  
 try 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ([ 
 Field 
 ( 
 "rating" 
 ). 
 greaterThan 
 ( 
 4 
 ). 
 as 
 ( 
 "hasHighRating" 
 )]) 
  
 . 
 execute 
 () 
  
Kotlin
Android
 val 
  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 greaterThan 
 ( 
 4 
 ). 
 alias 
 ( 
 "hasHighRating" 
 )) 
  
 . 
 execute 
 () 
  
Java
Android
 Task<Pipeline 
 . 
 Snapshot 
>  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 greaterThan 
 ( 
 4 
 ). 
 alias 
 ( 
 "hasHighRating" 
 )) 
  
 . 
 execute 
 (); 
  
Python
 from 
  
 google.cloud.firestore_v1.pipeline_expressions 
  
 import 
 Field 
 result 
 = 
 ( 
 client 
 . 
 pipeline 
 () 
 . 
 collection 
 ( 
 "books" 
 ) 
 . 
 select 
 ( 
 Field 
 . 
 of 
 ( 
 "rating" 
 ) 
 . 
 greater_than 
 ( 
 4 
 ) 
 . 
 as_ 
 ( 
 "hasHighRating" 
 )) 
 . 
 execute 
 () 
 ) 
  
Java
 Pipeline 
 . 
 Snapshot 
  
 result 
  
 = 
  
 firestore 
  
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 greaterThan 
 ( 
 field 
 ( 
 "rating" 
 ), 
  
 4 
 ). 
 as 
 ( 
 "hasHighRating" 
 )) 
  
 . 
 execute 
 () 
  
 . 
 get 
 (); 
  

GREATER_THAN_OR_EQUAL

Syntax:

 greater_than_or_equal(x: ANY, y: ANY) -> BOOLEAN 

Description:

Returns TRUE if x is greater than or equal to y , and FALSE otherwise.

If x and y are not comparable, returns FALSE .

Examples:

x y greater_than_or_equal(x, y)
1L
0.0 TRUE
1L
1L TRUE
1L
2L FALSE
"foo"
0L FALSE
0L
"foo" FALSE
NaN
0L FALSE
0L
NaN FALSE
NULL
NULL TRUE
Node.js
 const 
  
 result 
  
 = 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 greaterThanOrEqual 
 ( 
 1900 
 ). 
 as 
 ( 
 "publishedIn20thCentury" 
 )) 
  
 . 
 execute 
 (); 
  

Web

 const 
  
 result 
  
 = 
  
 await 
  
 execute 
 ( 
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 greaterThanOrEqual 
 ( 
 1900 
 ). 
 as 
 ( 
 "publishedIn20thCentury" 
 )) 
 ); 
  
Swift
 let 
  
 result 
  
 = 
  
 try 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ([ 
 Field 
 ( 
 "published" 
 ). 
 greaterThanOrEqual 
 ( 
 1900 
 ). 
 as 
 ( 
 "publishedIn20thCentury" 
 )]) 
  
 . 
 execute 
 () 
  
Kotlin
Android
 val 
  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 greaterThanOrEqual 
 ( 
 1900 
 ). 
 alias 
 ( 
 "publishedIn20thCentury" 
 )) 
  
 . 
 execute 
 () 
  
Java
Android
 Task<Pipeline 
 . 
 Snapshot 
>  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 greaterThanOrEqual 
 ( 
 1900 
 ). 
 alias 
 ( 
 "publishedIn20thCentury" 
 )) 
  
 . 
 execute 
 (); 
  
Python
 from 
  
 google.cloud.firestore_v1.pipeline_expressions 
  
 import 
 Field 
 result 
 = 
 ( 
 client 
 . 
 pipeline 
 () 
 . 
 collection 
 ( 
 "books" 
 ) 
 . 
 select 
 ( 
 Field 
 . 
 of 
 ( 
 "published" 
 ) 
 . 
 greater_than_or_equal 
 ( 
 1900 
 ) 
 . 
 as_ 
 ( 
 "publishedIn20thCentury" 
 ) 
 ) 
 . 
 execute 
 () 
 ) 
  
Java
 Pipeline 
 . 
 Snapshot 
  
 result 
  
 = 
  
 firestore 
  
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 greaterThanOrEqual 
 ( 
 field 
 ( 
 "published" 
 ), 
  
 1900 
 ). 
 as 
 ( 
 "publishedIn20thCentury" 
 )) 
  
 . 
 execute 
 () 
  
 . 
 get 
 (); 
  

LESS_THAN

Syntax:

 less_than(x: ANY, y: ANY) -> BOOLEAN 

Description:

Returns TRUE if x is less than y , and FALSE otherwise.

If x and y are not comparable, returns FALSE .

Examples:

x y less_than(x, y)
1L
0.0 FALSE
1L
1L FALSE
1L
2L TRUE
"foo"
0L FALSE
0L
"foo" FALSE
NaN
0L FALSE
0L
NaN FALSE
NULL
NULL FALSE
Node.js
 const 
  
 result 
  
 = 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 lessThan 
 ( 
 1923 
 ). 
 as 
 ( 
 "isPublicDomainProbably" 
 )) 
  
 . 
 execute 
 (); 
  

Web

 const 
  
 result 
  
 = 
  
 await 
  
 execute 
 ( 
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 lessThan 
 ( 
 1923 
 ). 
 as 
 ( 
 "isPublicDomainProbably" 
 )) 
 ); 
  
Swift
 let 
  
 result 
  
 = 
  
 try 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ([ 
 Field 
 ( 
 "published" 
 ). 
 lessThan 
 ( 
 1923 
 ). 
 as 
 ( 
 "isPublicDomainProbably" 
 )]) 
  
 . 
 execute 
 () 
  
Kotlin
Android
 val 
  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 lessThan 
 ( 
 1923 
 ). 
 alias 
 ( 
 "isPublicDomainProbably" 
 )) 
  
 . 
 execute 
 () 
  
Java
Android
 Task<Pipeline 
 . 
 Snapshot 
>  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "published" 
 ). 
 lessThan 
 ( 
 1923 
 ). 
 alias 
 ( 
 "isPublicDomainProbably" 
 )) 
  
 . 
 execute 
 (); 
  
Python
 from 
  
 google.cloud.firestore_v1.pipeline_expressions 
  
 import 
 Field 
 result 
 = 
 ( 
 client 
 . 
 pipeline 
 () 
 . 
 collection 
 ( 
 "books" 
 ) 
 . 
 select 
 ( 
 Field 
 . 
 of 
 ( 
 "published" 
 ) 
 . 
 less_than 
 ( 
 1923 
 ) 
 . 
 as_ 
 ( 
 "isPublicDomainProbably" 
 )) 
 . 
 execute 
 () 
 ) 
  
Java
 Pipeline 
 . 
 Snapshot 
  
 result 
  
 = 
  
 firestore 
  
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 lessThan 
 ( 
 field 
 ( 
 "published" 
 ), 
  
 1923 
 ). 
 as 
 ( 
 "isPublicDomainProbably" 
 )) 
  
 . 
 execute 
 () 
  
 . 
 get 
 (); 
  

LESS_THAN_OR_EQUAL

Syntax:

 less_than_or_equal(x: ANY, y: ANY) -> BOOLEAN 

Description:

Returns TRUE if x is less than or equal to y , and FALSE otherwise.

If x and y are not comparable, returns FALSE .

Examples:

x y less_than(x, y)
1L
0.0 FALSE
1L
1L TRUE
1L
2L TRUE
"foo"
0L FALSE
0L
"foo" FALSE
NaN
0L FALSE
0L
NaN FALSE
NULL
NULL TRUE
Node.js
 const 
  
 result 
  
 = 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 lessThanOrEqual 
 ( 
 2 
 ). 
 as 
 ( 
 "hasBadRating" 
 )) 
  
 . 
 execute 
 (); 
  

Web

 const 
  
 result 
  
 = 
  
 await 
  
 execute 
 ( 
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 lessThanOrEqual 
 ( 
 2 
 ). 
 as 
 ( 
 "hasBadRating" 
 )) 
 ); 
  
Swift
 let 
  
 result 
  
 = 
  
 try 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ([ 
 Field 
 ( 
 "rating" 
 ). 
 lessThanOrEqual 
 ( 
 2 
 ). 
 as 
 ( 
 "hasBadRating" 
 )]) 
  
 . 
 execute 
 () 
  
Kotlin
Android
 val 
  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 lessThanOrEqual 
 ( 
 2 
 ). 
 alias 
 ( 
 "hasBadRating" 
 )) 
  
 . 
 execute 
 () 
  
Java
Android
 Task<Pipeline 
 . 
 Snapshot 
>  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "rating" 
 ). 
 lessThanOrEqual 
 ( 
 2 
 ). 
 alias 
 ( 
 "hasBadRating" 
 )) 
  
 . 
 execute 
 (); 
  
Python
 from 
  
 google.cloud.firestore_v1.pipeline_expressions 
  
 import 
 Field 
 result 
 = 
 ( 
 client 
 . 
 pipeline 
 () 
 . 
 collection 
 ( 
 "books" 
 ) 
 . 
 select 
 ( 
 Field 
 . 
 of 
 ( 
 "rating" 
 ) 
 . 
 less_than_or_equal 
 ( 
 2 
 ) 
 . 
 as_ 
 ( 
 "hasBadRating" 
 )) 
 . 
 execute 
 () 
 ) 
  
Java
 Pipeline 
 . 
 Snapshot 
  
 result 
  
 = 
  
 firestore 
  
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 lessThanOrEqual 
 ( 
 field 
 ( 
 "rating" 
 ), 
  
 2 
 ). 
 as 
 ( 
 "hasBadRating" 
 )) 
  
 . 
 execute 
 () 
  
 . 
 get 
 (); 
  

NOT_EQUAL

Syntax:

 not_equal(x: ANY, y: ANY) -> BOOLEAN 

Description:

Returns TRUE if x is not equal to y , and FALSE otherwise.

Examples:

x y not_equal(x, y)
1L
1L FALSE
1.0
1L FALSE
-1.0
1L TRUE
NaN
0L TRUE
NaN
NaN FALSE
NULL
NULL FALSE
NULL
ABSENT TRUE
Node.js
 const 
  
 result 
  
 = 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "title" 
 ). 
 notEqual 
 ( 
 "1984" 
 ). 
 as 
 ( 
 "not1984" 
 )) 
  
 . 
 execute 
 (); 
  

Web

 const 
  
 result 
  
 = 
  
 await 
  
 execute 
 ( 
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "title" 
 ). 
 notEqual 
 ( 
 "1984" 
 ). 
 as 
 ( 
 "not1984" 
 )) 
 ); 
  
Swift
 let 
  
 result 
  
 = 
  
 try 
  
 await 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ([ 
 Field 
 ( 
 "title" 
 ). 
 notEqual 
 ( 
 "1984" 
 ). 
 as 
 ( 
 "not1984" 
 )]) 
  
 . 
 execute 
 () 
  
Kotlin
Android
 val 
  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "title" 
 ). 
 notEqual 
 ( 
 "1984" 
 ). 
 alias 
 ( 
 "not1984" 
 )) 
  
 . 
 execute 
 () 
  
Java
Android
 Task<Pipeline 
 . 
 Snapshot 
>  
 result 
  
 = 
  
 db 
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 field 
 ( 
 "title" 
 ). 
 notEqual 
 ( 
 "1984" 
 ). 
 alias 
 ( 
 "not1984" 
 )) 
  
 . 
 execute 
 (); 
  
Python
 from 
  
 google.cloud.firestore_v1.pipeline_expressions 
  
 import 
 Field 
 result 
 = 
 ( 
 client 
 . 
 pipeline 
 () 
 . 
 collection 
 ( 
 "books" 
 ) 
 . 
 select 
 ( 
 Field 
 . 
 of 
 ( 
 "title" 
 ) 
 . 
 not_equal 
 ( 
 "1984" 
 ) 
 . 
 as_ 
 ( 
 "not1984" 
 )) 
 . 
 execute 
 () 
 ) 
  
Java
 Pipeline 
 . 
 Snapshot 
  
 result 
  
 = 
  
 firestore 
  
 . 
 pipeline 
 () 
  
 . 
 collection 
 ( 
 "books" 
 ) 
  
 . 
 select 
 ( 
 notEqual 
 ( 
 field 
 ( 
 "title" 
 ), 
  
 "1984" 
 ). 
 as 
 ( 
 "not1984" 
 )) 
  
 . 
 execute 
 () 
  
 . 
 get 
 (); 
  

CMP

Syntax:

 cmp(x: ANY, y: ANY) -> Int64 

Description:

Compares x & y , returning:

  • 1L if x is greater than y .
  • -1L if x is less than y .
  • 0L otherwise.

Unlike other comparison functions, the cmp(...) function works across types, following the same ordering used in the sort(...) stage. See value type order for how values are ordered across types.

Examples:

x y cmp(x, y)
1L
1L 0L
1.0
1L 0L
-1.0
1L -1L
42.5D
"foo" -1L
NULL
NULL 0L
NULL
ABSENT 0L

What's next

Design a Mobile Site
View Site in Mobile | Classic
Share by: