社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

MongoDB如何在FindOnAndUpDate之后不返回文档

Thomas Kim • 5 年前 • 1539 次点击  

我正在寻找许多不同的方法,可以帮助节省带宽和数据。在我的节点js后端。我发现MongoDB更新操作后返回的数据根本没有使用。所以我决定不给用户回电话来节省带宽。 res.status(200).json();

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

如何让findOneAndUpdate或任何更新操作不返回数据。或者你有什么节省成本的技巧和窍门吗?:)

我的findonandupdate代码示例

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();
});
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49983
 
1539 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Thomas Kim
Reply   •   1 楼
Thomas Kim    5 年前

更新,所以不确定限制返回字段是否会节省成本,但我会选择最小的一个。非常感谢你的回答。我将在这里为其他人列出比较结果作为注释。感谢@Anthony Winzlet和@Florian Schlag感谢您抽出时间:)

一。方法: updateOne

返回字段:

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

字节大小:286

2。方法:添加 projection 在里面 findOneAndUpdate 并且只返回 _id

返回字段:

{"_id":"xxxxxxxxxxxxxxxxxxxxxxxx"}

字节大小:34