Я относительно новичок в Node.js и Mongo/Mongoose, и у меня очень трудное время устраняет неполадки в конкретной ошибке Mongoose:
VersionError: Совпадающий документ не найден.
(Вся трассировка ошибок/стек в нижней части этого вопроса.)
Это сообщение в блоге довольно четко описывает, как может возникнуть проблема с версией:
(TL; DR - "Mongoose v3 теперь добавляет к каждому документу ключ конфигурации, конфигурируемый с помощью схемы.Это значение атомарно увеличивается, когда модификация массива потенциально меняет положение элементов массива". Если вы попытаетесь сохранить документ, но ключ версии больше не совпадает с объектом, который вы получили, вы получаете выше VersionError
.)
Основной вопрос: Есть ли способ показать оскорбительную операцию save()
? Или какой документ не удалось сохранить? Или что-нибудь вообще?!;)
Задача:. Это относительно большая база кода со многими массивами, и я не уверен, как начать устранение этой проблемы. В частности, ошибка trace/stack НЕ показывает, где проблема существует. См. Ниже:
VersionError: No matching document found.
at handleSave (<project_path>/node_modules/mongoose/lib/model.js:121:23)
at exports.tick (<project_path>/node_modules/mongoose/lib/utils.js:408:16)
at null.<anonymous> (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection.js:484:9)
at g (events.js:192:14)
at EventEmitter.emit (events.js:126:20)
at Server.Base._callHandler (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:391:25)
at Server.connect.connectionPool.on.server._serverState (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:558:20)
at MongoReply.parseBody (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:131:5)
at Server.connect.connectionPool.on.server._serverState (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:517:22)
at EventEmitter.emit (events.js:96:17)