-
Type: Epic
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Component/s: None
-
None
-
Done
-
updateMany without shard key
Haven't started scoping yet but suspect this will need drivers changes.
Description of Linked Ticket
Summary
This project proposes making updateMany, without a shard key in the filter, work correctly against a sharded collection, for all combinations of ordered:true/false and upsert:true/false. We will consider several ways to implement this - using transactions against all concurrently targeted shards or using two-phase updates where the first phase establishes cursors and the second phase performs the actual updates.
Motivation
The current implementation of updateMany against a sharded collection doesn’t work correctly, because it doesn’t synchronise with chunk migrations and doesn’t perform chunk filtering. As a result, it has the potential of applying updates to the same document between zero and multiple times. Furthermore, it the upsert:true option requires that a shard key be specified so that a unique shard can be targeted.
Documentation
- is related to
-
DRIVERS-817 updateOne, updateMany, deleteOne, and findAndModify without shard key
- Development Complete