MongoDB findOneAndUpdate后如何不返回文档

时间:2019-05-15 14:29:26

标签: mongodb mongoose mongodb-query

我正在寻找许多有助于节省带宽和数据的方法。在我的node-js后端中。我发现根本不使用更新操作后从MongoDB返回的数据。因此,我决定通过不致电给任何用户(例如 res.status(200).json();

但是我想到了一些想法,MongoDB实际上是在更新操作之后将数据/文档传递回去。因此,即使我选择不向用户返回任何数据。仍然会有数据发送回我的node-js后端。换句话说,这可能会增加我托管数据库的不必要的额外成本。

如何让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 :(得分:0)

更新,不确定是否限制返回字段是否可以节省成本,但是我会选择最小的尺寸。非常感谢您的出色回答。我将在这里为其他人列出比较结果作为注释。感谢@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

返回字段:

{"_id":"xxxxxxxxxxxxxxxxxxxxxxxx"}
  

byteSize:34