You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This isn't exclusively tied to Contentment, but Contentment is probably the most extensive use of MongoEngine by Marrow projects.
The following issues directly impact our use of the library, and since 0.10 there have been an absolutely astounding number of regressions and new bugs added which have had far-reaching effects. Here are the short lists.
Promote and demote inherited classes. MongoEngine/mongoengine#167 (rejected) — A nearly four year old ticket directly relating to promotion and demotion of Contentment Asset classes to allow for post-creation specialization and migration between specializations.
I can't even find back the ticket where I requested access to cached data without triggering dereferencing. (Was closed as "wont fix" long ago.) The vast majority of the above are directly impactful and/or have actually been encountered at Illico, forcing us to pin to < 0.10. Given that our database servers will be updated to 3.2 in the near future, with new getMore semantics, we can't stay pinned forever.
This isn't exclusively tied to Contentment, but Contentment is probably the most extensive use of MongoEngine by Marrow projects.
The following issues directly impact our use of the library, and since 0.10 there have been an absolutely astounding number of regressions and new bugs added which have had far-reaching effects. Here are the short lists.
Increase Code Health MongoEngine/mongoengine#897— Overall code health.Drop support for positional arguments when instantiating a document MongoEngine/mongoengine#2103— Removal of contributed positional instantiation functionality.Enhancements
Promote and demote inherited classes. MongoEngine/mongoengine#167(rejected) — A nearly four year old ticket directly relating to promotion and demotion of Contentment Asset classes to allow for post-creation specialization and migration between specializations.Cannot query on _cls MongoEngine/mongoengine#450— Can't query on the generated class name field.Performance
Efficiency of "in" with BaseList MongoEngine/mongoengine#1116— List fieldin
checks are quite slow.QuerySet count vs len MongoEngine/mongoengine#937— Queryset cache really kills things, especially len() performance.Regressions
Field where class field name != document field name is not being updated to database MongoEngine/mongoengine#1178— Fields with overriddendb_field
(about 95% of ours) don't get marked as dirty and are not saved correctly.regression in 0.10.0 compared to 0.9.0 for queryset limit after count MongoEngine/mongoengine#1136— An internally infamous bug, if you count the result of a query, limit is no longer applied.error while using "db_field" parameter in multi-level embedded documents MongoEngine/mongoengine#904 — A PR exists, but not accepted yet, to fix db_field usage in hierarchical embedded documents.Bugs
Cannot query and filter fields of subclasses of embedded documents MongoEngine/mongoengine#475— Can't query/filter fields that are present on embedded document subclasses.Document.save not saving the doc MongoEngine/mongoengine#1246— Use ofprimary_key
is pretty broken.no_sub_classes
manager.)switch_db
does not dereference properly MongoEngine/mongoengine#1288 — Dereferencing in the context of multiple database connections fails.Calling len() on a QuerySet object mid-iteration stops iteration at current hundred documents MongoEngine/mongoengine#1086— Calling len() on a query set mid-iteration breaks iteration.mongoengine.errors.ValidationError: A ReferenceField only accepts DBRef or documents MongoEngine/mongoengine#997— Can't safely reference abstract document base class.Connect blindly overrides username/password when URI style connection is used. MongoEngine/mongoengine#909— URI overrides username/password on connect, even if it does not define a username or password.Field Bugs
EmailField doesn't support Unicode MongoEngine/mongoengine#1228— Poor regular expression-based e-mail validation.decrementing Decimal raises InvalidDocument exception type MongoEngine/mongoengine#1320— Atomic operations on decimal fields.Deleting an element from middle of ListField results in an incorrect list. MongoEngine/mongoengine#1318— List fields fail to correctly track changes.Causeless DecimalField behavior MongoEngine/mongoengine#637— More decimal field issues.Wrong ObjectIdField to_mongo() and validate() methods behavior on Python 3 MongoEngine/mongoengine#618— ObjectId fields behave badly on Python 3.Bug: ListField may lost value if do iterate before some edit operation MongoEngine/mongoengine#632— List field data loss.ListField minus index assignment does not work MongoEngine/mongoengine#1119— Can't utilize negative indices on list fields for assignment/update.ImageField is nullified after save MongoEngine/mongoengine#847— Image field nukes itself after retrieval and save.Don't get me started on the potential and the failure of CachedReferenceField.
AttributeError: 'CachedReferenceField' object has no attribute '_get_db' MongoEngine/mongoengine#1075— Missing_get_db
.CachedReferenceField creates DBRefs on to_python, but can't save them on to_mongo MongoEngine/mongoengine#1047— Creates DBRef, can't save.I can't even find back the ticket where I requested access to cached data without triggering dereferencing. (Was closed as "wont fix" long ago.) The vast majority of the above are directly impactful and/or have actually been encountered at Illico, forcing us to pin to < 0.10. Given that our database servers will be updated to 3.2 in the near future, with new getMore semantics, we can't stay pinned forever.
So yeah, marrow.schema and marrow.mongo are somewhat more important things moving forward.
The text was updated successfully, but these errors were encountered: