Commit Graph

216 Commits

Author SHA1 Message Date
Bastien Gerard
c00a378776 autoformat with updated black 2020-12-13 00:14:52 +01:00
Bastien Gerard
3926473917 Improve Fields documentation + remove versionadded/changed as it's not maintained 2020-12-06 22:25:12 +01:00
Bastien Gérard
d8b8ff6851 Removed code related to Document.__only_fields and Queryset.only_fields which appear to have no effect 2020-11-02 14:52:02 +01:00
Bastien Gérard
aca4de728e Merge branch 'master' of github.com:MongoEngine/mongoengine into fix_count_documents_deprecation 2020-08-11 23:01:33 +02:00
Bastien Gérard
194b0cac88 improve doc + changelog 2020-05-26 23:45:35 +02:00
Bastien Gérard
7b4175fc5c Merge branch 'master' of github.com:MongoEngine/mongoengine into fix_limit0_bug 2020-05-26 23:44:05 +02:00
Bastien Gérard
adb5f74ddb Fix a bug in limit0 #2311 2020-05-26 23:37:55 +02:00
Agustin Barto
1698f398eb Add _read_concern to copied properties. Add read_concern to aggregate. Add test to check the read_concern and read_preference values are kept after cloning. 2020-05-20 18:56:13 -03:00
Bastien Gérard
78c9e9745d fix linting + update changelog & contributors 2020-04-26 22:51:56 +02:00
Bastien Gérard
38ebb5abf4 Merge branch 'master' into feature/allow-setting-read-concern-queryset 2020-04-26 22:36:47 +02:00
Bastien Gérard
0a0e6114f5 Merge branch 'master' into drop_py2_support 2020-04-19 23:13:36 +02:00
Bastien Gérard
2b0157aecd Improve Queryset.get to avoid confusing message in case multiple match are found 2020-03-22 14:08:29 +01:00
Agustin Barto
8913a74a86 Allow setting the read concern to None 2020-03-17 21:31:05 -03:00
Agustin Barto
af35b25d15 Refactor read_preference to accept a dictionary instead of a ReadPreference instance. 2020-03-17 21:28:08 -03:00
Bastien Gérard
547cd4a3ae Merge branch 'master' of github.com:MongoEngine/mongoengine into remove_old_deprecated_method 2020-03-17 21:39:36 +01:00
Bastien Gérard
aadc6262ed remove qs.slave_okay() that is deprecated since pymongo3 2020-03-17 21:10:52 +01:00
Bastien Gérard
85df76c623 Merge branch 'master' of github.com:MongoEngine/mongoengine into drop_py2_support 2020-03-17 09:24:32 +01:00
Bastien Gérard
a3f9016ae9 reformat import for flake8 2020-03-15 22:27:19 +01:00
Bastien Gérard
4e58e9f8d1 Merge branch 'master' of github.com:MongoEngine/mongoengine into feature/allow-setting-read-concern-queryset 2020-03-15 22:25:59 +01:00
Bastien Gérard
c0c0efce18 improve docstring related to #2267 and document the change in the changelog 2020-03-15 22:14:26 +01:00
Bastien Gérard
beabaee345 Merge branch 'master' of github.com:MongoEngine/mongoengine into support-elemmatch-projection 2020-03-15 22:08:20 +01:00
Bastien Gérard
aa4a6ae023 Fix invalid escape seq in codebase 2020-03-15 21:02:44 +01:00
Bastien Gérard
1e110a2c41 run pyupgrade --py3-plus 2020-03-11 23:34:43 +01:00
Bastien Gérard
8086576677 get rid of six 2020-03-11 23:07:03 +01:00
Bastien Gérard
03e34299f0 clean code related to Py2 + six.text_type & six.string_types 2020-03-11 21:50:50 +01:00
Bastien Gérard
421e3f324f Drop python2 support 2020-03-09 00:18:52 +01:00
Bastien Gérard
a0b803959c Merge branch 'master' of github.com:MongoEngine/mongoengine into py2py3_improve_compat 2020-03-08 14:44:39 +01:00
Bastien Gérard
ff4d57032a reformat w black 2020-03-03 23:51:11 +01:00
Agustin Barto
4bca3de42f Add support for the elemMatch projection operator. Add basic tests to the fields queryset method. 2020-02-14 16:43:07 -03:00
Agustin
8e17e42e26 Allow setting read_concern 2020-01-24 13:11:07 -03:00
Bastien Gérard
86e965f854 remove very old deprecated method 2020-01-13 23:45:42 +01:00
Bastien Gérard
e64a7a9448 reformat with latest black 2020-01-07 22:11:24 +01:00
Bastien Gérard
84f3dce492 fix flake8 findings 2020-01-05 22:50:19 +01:00
Bastien Gérard
60c42dddd5 finalize code related to count_documents migration 2020-01-05 22:29:13 +01:00
Bastien Gérard
f93f9406ee improve doc next to code 2020-01-05 21:08:20 +01:00
Bastien Gérard
928770c43a switching to count_documents 2020-01-05 21:01:03 +01:00
Bastien Gérard
b3dbb87c3c improve doc of aggregate kwargs 2019-12-27 10:06:27 +01:00
Bastien Gérard
aa02f87b69 change & deprecate .aggregate api to mimic pymongo's interface + separate the aggregation tests from the large test_queryset.py file 2019-12-27 09:23:15 +01:00
Bastien Gérard
2ca905b6e5 Finalize python2/3 codebase compatibility and get rid of 2to3 2019-12-13 23:43:04 +01:00
Bastien Gérard
37ca79e9c5 fix black formatting 2019-10-31 22:39:53 +01:00
Bastien Gérard
e3cd553f82 add latest pymongo 3.9 as part of the CI 2019-10-04 21:46:47 +02:00
Bastien Gérard
933cb1d5c7 Merge pull request #2144 from 0a69911a/master
Implement collation for queryset
2019-09-11 23:27:25 +02:00
Bastien Gérard
6203e30152 Merge pull request #2160 from vainu-arto/fix-trust-default-cursor-timeout
Only set no_cursor_timeout when requested
2019-09-11 22:09:56 +02:00
Bastien Gérard
7d94af0e31 add test coverage for no_cursor_timeout to support recent fix 2019-09-11 21:53:30 +02:00
Arto Jantunen
47f8a126ca Only set no_cursor_timeout when requested
Previously this was always set for all requests. The parameter is only
documented as supported for certain queries, so this was probably wrong.

Mongo version 4.2 fails update queries that have this parameter set making
mongoengine unusable there. Fixes #2148.
2019-09-03 14:36:06 +03:00
Erdenezul Batmunkh
a06e605e67 Add BulkWriteError exception 2019-08-29 11:11:27 +02:00
Erdenezul Batmunkh
e86cf962e9 Change misleading error message 2019-08-21 13:08:30 +02:00
otrofimov
b887ea9623 Implement collation for queryset 2019-08-08 11:55:45 +03:00
Stefan Wójcik
50555ec73e Better management of the automatic "_cls" field (#2112)
* Rename BaseQuerySet._initial_query to BaseQuerySet._cls_query

This new name more accurately reflects the purpose of the dict. It is either
empty for documents that don't use inheritance or it contains a `{"_cls": ...}`
shape query. There was nothing "initial" about it per se.

* Drop read_preference as a kwarg on BaseQuerySet.__call__/filter

It was a poor design choice to offer two different ways to do the same thing:
1. `SomeDoc.objects(foo=bar, bar=baz).read_preference(...)`
2. `SomeDoc.objects(foo=bar, bar=baz, read_preference=...)`

Option 1 is good because it's immediately obvious which part defines the query
to be used and which part defines the read preference.

Option 2 is bad because you don't immediately know whether `read_preference`
is a query kwarg or a reserved keyword with some special behavior. If you
wanted to be particularly cruel, you could even write
`SomeDoc.objects(foo=bar, read_preference=..., bar=baz)`.

THIS IS A BREAKING CHANGE. From now on you have to use the
`BaseQuerySet.read_preference(...)` method.

* Add a BaseQuerySet.clear_cls_query method + get rid of the class_check kwarg

This is similar to what the previous commit did to read preference except that
in this case we were still missing a `BaseQuerySet` method for clearing the
`_cls` query.

Now, instead of the undocumented, untested, and confusing interface:
    `ParentDoc.objects(foo=bar, bar=baz, class_check=False)`
We do:
    `ParentDoc.objects(foo=bar, bar=baz).clear_cls_query()`
2019-07-03 11:07:55 +02:00
Stefan Wójcik
d0b87f7f82 Drop the deprecated "format" param from BaseQuerySet.explain (#2113)
That option was pretty useless. You can very easily do:
```
import pprint
(...)

plan = SomeDoc.objects(...).explain()
pprint.pformat(plan)
```
2019-07-01 10:18:47 +02:00