MongoDB, как не вернуть документ после findOneAndUpdate - PullRequest
0 голосов
/ 15 мая 2019

Я ищу много разных способов, которые могли бы помочь сохранить пропускную способность и данные.В моем бэкэнде node-js.Я обнаружил, что данные возвращаются из MongoDB после того, как операция обновления вообще не используется.Поэтому я решил сэкономить пользователям некоторую полосу пропускания, не возвращая их, позвонив, например, res.status(200).json();

Но некоторые мысли приходят мне в голову, MongoDB фактически передает данные / документ обратно после операции обновления.Таким образом, хотя я предпочитаю не возвращать никаких данных моему пользователю.Данные по-прежнему будут отправляться обратно в мой серверный узел.Другими словами, это может привести к дополнительным ненужным расходам на мой хостинг базы данных.

Как разрешить findOneAndUpdate или любой операции обновления не возвращать данные.Или у вас есть какие-то хитрости и советы по экономии затрат?:)

Пример одного из моих кодов findOneAndUpdate

feedbacks.findOneAndUpdate({
    '_id': feedbackId
}, {
    'status': status
}, (err, result) => {
    if (err) {
        console.log(chalk.red(err));
        res.status(500).json(err);
    }
    console.log(chalk.green('UPDATE: (Super Admin) Feedback status'));
    res.status(200).json();
});

1 Ответ

0 голосов
/ 16 мая 2019

Обновления, не уверен, что ограничение полей возврата сэкономит стоимость, но я остановлюсь на меньшем размере.Большое спасибо за отличные ответы.Я перечислю сравниваемый результат здесь для других как примечания.Кредиты @Anthony Winzlet и @Florian Schlag Спасибо за ваше время:)

1.Метод: updateOne

Возвращаемые поля:

{"n":1,"nModified":1,"opTime":{"ts":"xxxxxxxxxxxxxxxxxxx","t":14},"electionId":"xxxxxxxxxxxxxxxxxxx","ok":1,"operationTime":"xxxxxxxxxxxxxxxxxxx","$clusterTime":{"clusterTime":"xxxxxxxxxxxxxxxxxxx","signature":{"hash":"xxxxxxxxxxxxxxxxxxx","keyId":"xxxxxxxxxxxxxxxxxxx"}}}

byteSize: 286

2.Метод: добавьте projection в findOneAndUpdate и верните только поля _id

Return:

{"_id":"xxxxxxxxxxxxxxxxxxxxxxxx"}

byteSize: 34

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...