mongoDb 聚合框架中的 $set 与 $addField

Roh*_*tel 4 mongodb aggregation-framework

MongoDb 4.2中,我们有了新的聚合阶段$set。根据文档,

$set$addFieldsstage 是(来自 mongoDb 3.4)的别名

但没有提到为什么需要有两个具有相同功能的阶段。

有人可以帮助理解这一点吗?(可能因为 <4.0 的版本很快就会被废弃)

Joe*_*Joe 5

MongoDB 4.2 引入了可以接受聚合管道的更新命令。

$set长期以来一直是更新操作符,它在更新中执行与阶段$addFields在聚合中执行的操作相同的操作。

允许在聚合管道中使用任一名称可以简化新更新命令的采用。

  • 警告,更新 $set 和聚合 $set 完全不同 - https://jira.mongodb.org/browse/SERVER-42084?focusedCommentId=4477916&amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#评论-4477916 (3认同)