-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
В файле relationHooks.js регистрируются хуки на обновление документов в коллекции, на которую были созданые ссылки. Но обновить документ можно не только через update, но и через replace. Соответственно, использование replace может привести к наружению целостности базы.
Пример для воспроизведения проблемы: https://gist.github.com/lbeschastny/ac0908c4b61facad848ded7eb6f48102
Запустить пример можно командой:
git clone git@gist.github.com:ac0908c4b61facad848ded7eb6f48102.git && cd ac0908c4b61facad848ded7eb6f48102 && npm i && node .По логам видно:
creating document in coll2
document created:
{ foreignKey: { _id: 5b0b0596a7cf640eae5e4085, foo: 'bar' },
_id: 5b0b0596a7cf640eae5e4086 }
updating document in coll1
document updated:
{ _id: 5b0b0596a7cf640eae5e4085, foo: 'baz' }
reading document in coll2
document fetched:
{ _id: 5b0b0596a7cf640eae5e4086,
foreignKey: { _id: 5b0b0596a7cf640eae5e4085, foo: 'baz' } }
replacing document in coll1
document updated:
{ _id: 5b0b0596a7cf640eae5e4085, foo: 'foo bar' }
reading document in coll2
document fetched:
{ _id: 5b0b0596a7cf640eae5e4086,
foreignKey: { _id: 5b0b0596a7cf640eae5e4085, foo: 'baz' } }
что после использования findOneAndReplace проекция в коллекции coll2 не обновляется.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels