如何使用同一记录中的现有值更新MongoDB记录

qrjkbowd  于 2023-05-17  发布在  Go
关注(0)|答案(1)|浏览(184)

我正在尝试编写一个查询来更新mongo中的日期,使其与基于某些逻辑的同一记录中的现有日期相同。我有一个简单的步骤,我坚持我如何访问值?

db.getCollection("MyCollection").updateMany({
//SOME LOGIC HERE
{
"$set":{"updatedTs": "$$createdTs"}
},{multi:true}
)

这返回的updatedTs等于文字字符串“$$createdTs”,而不是存储的值。我发现最接近我的查询是这个论坛问题,但链接的页面不再存在:https://www.mongodb.com/community/forums/t/updatemany-in-mongodb-using-value-of-other-field/99555
我错过了什么?

hmmo2u0o

hmmo2u0o1#

从MongoDB 4.2开始,你可以在更新查询中写入聚合管道(即包含updateMany)。

db.getCollection("MyCollection").updateMany({
//SOME LOGIC HERE
},
[
 {
  "$set":{"updatedTs": "$createdTs"}
 }
],
{multi:true}
)

mongoplayground

相关问题