Skip to content

Неправильно обрабатывается обновление первичного ключа #7

Description

@lbeschastny

Если в качестве первечного ключа (параметр key) использовать не _id, то этот первичный ключ может быть изменен.
Сейчас mongodbext-relations обрабатывает такие обновелния не корректно.

Пример для воспроизведения проблемы: https://gist.github.com/lbeschastny/6aa6ce643c4d7edd0d02f8eb582e0a3c

Команда для запуска примера:

git clone git@gist.github.com:6aa6ce643c4d7edd0d02f8eb582e0a3c.git && cd 6aa6ce643c4d7edd0d02f8eb582e0a3c && npm i && node .

В примере в качестве первичного ключа используется поле foo:

      foreignKey: {
        collection: coll1,
        key: 'foo',
        projection: { _id: 1, foo: 1 }
      }

При этом при попытке обновить поле foo в документе в коллекции coll1 кидается ошибка

Document with foo=... is not found in `coll1` collection

При этом обновление документа в коллекции coll1 на самом деле происходит, ошибка же возникает при попытке обновить его проекцию в коллекции coll2.
Соответственно, это все приводит к нарушению целостности базы, т.к. в coll1 поле обновилось, а во всех проекциях в coll2 - нет.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions