-
Type:
New Feature
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: django
-
None
Context
It appears there's a way to emulate SELECT ... FOR UPDATE in MongoDB.
After setting DatabaseFeatures.has_select_for_update = True and implementing the necessary logic in the backend's SQLCompiler, check Django's `select_for_update` test app.
The MongoDB blog and and Django's documentation for select_for_update() motivate use cases.
Potential Implementation Strategy
I'm not sure where the logic will go offhand (or if it's even feasible). In SQL, it's part of the query (see query.select_for_update in SQLCompiler.as_sql()) but it seems for MongoDB, the solution is to use db.findOneAndUpdate() rather than to add something to the pipeline.
Acceptance Criteria
Pass the `select_for_update` test app with the DatabaseFeature.has_select_for_update = True set as a flag
Pitfalls
Feasibility needs research