#node.js #database #mongodb #mongoose #mongoose-schema
Вопрос:
У меня есть несколько вопросов относительно .сохранить при выходе из документа.
Я ищу эффективное решение для обновления документа.
Я слышал об .updateOne()
этом , но я чувствую себя незнакомым с этим, так как мне нужно проанализировать поле, которое должно быть обновлено, а затем проанализировать значения из всего кэшированного документа.
.save()
, сохраняет всю мою работу, но я ищу альтернативу, так как ошибка parallelsaveerror возникает, когда у меня много быстрых запросов на сохранение , и мне приходится кэшировать документ как «документ мангуста» (я не хочу извлекать его раньше), который использует много оперативной памяти.
Thx заранее!
Version:
mongoose: ^5.10.2,
nodejs: v14.15.5
mongodb: node driver on mongodb atlas
Ответ №1:
вот операция по переписыванию данных с moongose
let queryOperation = [];
queryOperation.push({
updateOne: {
filter: hereGoesWhereCondition, //{_id: user._id}
update: data, // object of fields to update
}
});
const name = await model.bulkWrite(queryOperation); //model is the table in which you want to update
Комментарии:
1. Дело в том, что я не хочу анализировать поля для обновления вручную. Есть ли какое-либо более простое решение или какая-либо функция, когда у меня есть две версии документа. Я могу сравнить его, а затем он автоматически предоставит мне поля для обновления?
2. Я думаю, нет, возможно, кто-то придумает какой-нибудь трюк
3. Но должно же быть что-то, что библиотека мангуста делает в бэкэнде