This is an automated email from the ASF dual-hosted git repository.
rnewson pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb.git
The following commit(s) were added to refs/heads/main by this push:
new aff7a6e71 docs(mango): match description of `$mod` with reality
new bcfaa82c3 Merge pull request #4379 from pgj/mango-doc-fix
aff7a6e71 is described below
commit aff7a6e7183e6c471a9675e37216baa0bad563a3
Author: Gabor Pali <[email protected]>
AuthorDate: Tue Jan 17 10:54:19 2023 +0100
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
---
src/docs/src/api/database/find.rst | 4 ++--
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