Условная запись и её результат в MongoDB
mongodb117-atomic-optimistic-version
Это строки реального запуска на синтетических документах. Своя коллекция после проверки удалена.
Наблюдения этого запуска
Ниже сохранены ответы записи, причины отказов и итоговые документы. Текст и подробности серверных ошибок могут различаться между версиями. Случайные имена учебных объектов заменены подписями.
Две формы читали версию 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.