【发布时间】:2019-05-16 10:29:17
【问题描述】:
我正在寻找可以帮助节省带宽和数据的许多不同方法。在我的 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();
});
【问题讨论】:
-
然后使用
updateOne。它只返回匹配的详细信息。 -
您可以在语句中添加一个项目,只返回
_id字段(在filter和update部分之后),如下所述:docs.mongodb.com/manual/reference/method/… -
@Anthony Winzlet,感谢您的建议,我刚刚检查了
updateOne,这看起来是限制/减少返回数据的好方法。{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } -
@Florian Schlag,也谢谢你。我阅读了您提供的链接。如果我没有错,请使用您的方法。我可以使用
projection限制每次更新并仅返回{ "_id" : "xxxxx" }。我会做一个字节大小比较 tmr 看看哪个更节省。 (确保)谢谢:)
标签: mongodb mongoose mongodb-query