Я выполняю updateOne для своей модели и предварительно подключаю к моей схеме pre updateOne:
const schema = new mongoose.Schema({ name: { type: String } });
schema.pre('updateOne', async function() {
fs.writeFileSync('./query.json', stringify(this, null, 2), 'utf-8');
});
const Model = mongoose.model('Model', schema);
let res = await Model.create({
name: "I'll be updated soon",
});
console.log(res.name, res._id);
await Model.updateOne(
({ _id: res._id }, { $set: { name: 'I was updated!' } }),
);
Но я не могу найти способ получить текущее обновление идентификатора документа. Вот рабочий тестовый скрипт: https://gist.github.com/YuriGor/04192230fb63542c1af5ff5c19b3a724
Примечание: в реальной жизни это происходит внутри плагина mongoose, поэтому я не могу просто сохранить doc _id в некоторой переменной в родительской области, как я делаю в этом сценарии.