- Attempting to update an array using dotted notation failed with a PathNotViable error (code 28) if the array is sufficiently large.
Attached is a jstest that creates an empty array, then attempts to insert 10 new elements into the array using dotted notation such as {$set: {"array.0.content": "x"}}: PathNotViable.js
The test will fail if we attempt to insert 10 elements at once. It will succeed when we try to insert fewer than that, e.g. 9 elements.
The error message printed in the console is as follows:
Cannot create field 'content' in element {: null}
WriteResult({
  "nMatched": 0,
  "nUpserted": 0,
  "nModified": 0,
  "writeError": {
    "code": 28,
    "errmsg": "Cannot create field 'content' in element {: null}"
  }
})
This also happens when inserting the same number of elements using Pymongo.
- duplicates
- 
                    SERVER-33687 Sort order of array indexes can determine success of an update -         
- Closed
 
-