我正在寻找许多有助于节省带宽和数据的方法。在我的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();
});
答案 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