diff options
author | Gabor Pali <gabor.pali@ibm.com> | 2023-01-17 10:54:19 +0100 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2023-01-19 14:08:25 -0500 |
commit | 74606ffc1ee9587077c1b3a0d5ad9f8fbf8c770b (patch) | |
tree | 1ff135534ed2482dba6e9b0b8618db38f42f0132 | |
parent | 24a56d4ca1e6b4d140d75815bdceb8b276170178 (diff) | |
download | couchdb-74606ffc1ee9587077c1b3a0d5ad9f8fbf8c770b.tar.gz |
docs(mango): match description of `$mod` with reality
The remainder argument for the `$mod` operator can be zero, while
its documentation suggests otherwise. It actually covers a very
realistic use case where divisibility is expressed.
Neither related restrictions could be identified in the sources
[1] nor MongoDB forbids this [2]. Tests also seem to exercise this
specific case [3]. Thanks @iilyak for checking on these.
[1] https://github.com/apache/couchdb/blob/adf17140e81d0b74f2b2ecdea48fc4f702832eaf/src/mango/src/mango_selector.erl#L512:L513
[2] https://www.mongodb.com/docs/manual/reference/operator/query/mod/
[3] https://github.com/apache/couchdb/blob/0059b8f90e58e10b199a4b768a06a762d12a30d3/src/mango/test/03-operator-test.py#L58
-rw-r--r-- | src/docs/src/api/database/find.rst | 4 | ||||
-rw-r--r-- | src/mango/README.md | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/docs/src/api/database/find.rst b/src/docs/src/api/database/find.rst index b5a0bd460..0e511e6ad 100644 --- a/src/docs/src/api/database/find.rst +++ b/src/docs/src/api/database/find.rst @@ -705,8 +705,8 @@ operators require the argument to be in a specific JSON format. | | | | document. Non-array fields cannot | | | | | match this condition. | +---------------+-------------+------------+-----------------------------------+ -| Miscellaneous | ``$mod`` | [Divisor, | Divisor and Remainder are both | -| | | Remainder] | positive or negative integers. | +| Miscellaneous | ``$mod`` | [Divisor, | Divisor is a non-zero integer, | +| | | Remainder] | Remainder is any integer. | | | | | Non-integer values result in a | | | | | 404. Matches documents where | | | | | ``field % Divisor == Remainder`` | diff --git a/src/mango/README.md b/src/mango/README.md index 4c4bb60a6..9fa273b15 100644 --- a/src/mango/README.md +++ b/src/mango/README.md @@ -302,7 +302,7 @@ Array related operators Misc related operators -* "$mod" - [Divisor, Remainder], where Divisor and Remainder are both positive integers (ie, greater than 0). Matches documents where (field % Divisor == Remainder) is true. This is false for any non-integer field +* "$mod" - [Divisor, Remainder], where Divisor is a non-zero integer and Remainder is any integer. Matches documents where (field % Divisor == Remainder) is true. This is false for any non-integer field * "$regex" - string, a regular expression pattern to match against the document field. Only matches when the field is a string value and matches the supplied matches |