У меня очень раздражающая проблема с плагином Mongoose в сочетании с Feathers.
Это простой плагин, взятый из документации Mongoose здесь , который обновляет версию документа (__v) для каждого типа обновления.Он отлично работает как отдельный плагин, но в сочетании с Feathersjs он не работает.
Каким-то образом Mongoose неправильно преобразовывает строки идентификаторов объектов в ObjectID при запуске обновлений и исправлений с помощью плагина в сочетании с Feathersjs.Если я отключаю плагин, обновления и патчи работают.
Насколько я смог определить отладку, данные, отправляемые при вызове из Feathersjs в Mongoose, одинаковы как с включенным, так и с отключенным плагином.Поэтому я склонен сказать, что Feathersjs не является виновником, но опять же, почему плагин работает без Feathersjs?
Я настроил пример репо здесь .К сожалению, это минимальная настройка, необходимая для воссоздания проблемы.Это выглядит следующим образом:
- src / models / schema / Categories.schema.js - пример определения схемы Mongoose
- src / mongoose / always-update-version-key.js - плагин
- test / mongoose / always-update-version-key.test.js - тестирование схемы и плагина без перьев
- test / services / category.test.js - тестированиесхема и плагин с Feathers
Я добавил тест для тестирования плагина с и без Feathersjs.Для запуска тестов выполните npm run test:unit
.Mongo должен работать на порте по умолчанию (27017).
Я надеюсь, что кто-то может помочь мне решить эту очень неприятную проблему или указать мне код в Mongoose, где строки идентификаторов преобразуются в ObjectID.