Условная запись и её результат в MongoDB

mongodb117-atomic-optimistic-version

Это строки реального запуска на синтетических документах. Своя коллекция после проверки удалена.

ФормаОжидаемая версияИзмененоЦена, руб.НазваниеТекущая версия
A71550Синяя кружка8
B70550Синяя кружка8

Наблюдения этого запуска

Ниже сохранены ответы записи, причины отказов и итоговые документы. Текст и подробности серверных ошибок могут различаться между версиями. Случайные имена учебных объектов заменены подписями.

Две формы читали версию 7
[
    {
        "name": "A",
        "expectedVersion": 7,
        "changes": {
            "price": 550
        }
    },
    {
        "name": "B",
        "expectedVersion": 7,
        "changes": {
            "title": "Красная кружка"
        }
    }
]
Ответы findAndModify
[
    {
        "lastErrorObject": {
            "n": 1,
            "updatedExisting": true
        },
        "value": {
            "_id": 301,
            "title": "Синяя кружка",
            "price": 550,
            "version": 8
        },
        "ok": 1
    },
    {
        "lastErrorObject": {
            "n": 0,
            "updatedExisting": false
        },
        "value": null,
        "ok": 1
    }
]
Состояние после каждого сохранения
[
    {
        "_id": 301,
        "title": "Синяя кружка",
        "price": 550,
        "version": 8
    },
    {
        "_id": 301,
        "title": "Синяя кружка",
        "price": 550,
        "version": 8
    }
]

PHP 8.5.11; mongodb 2.5.5; MongoDB 8.0.34.