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

标签 javascript mongodb mongodb-query

我正在尝试编写一个查询来根据某种逻辑将 mongo 中的日期更新为与同一记录内的现有日期相同。我有一个简单的步骤,但我不知道如何访问该值?

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

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

我在这里缺少什么?

最佳答案

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

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

mongoplayground

关于javascript - 如何使用同一记录中的现有值更新 MongoDB 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76212206/

相关文章:

mongodb - 如何在 mongo 聚合 $group $cond 中使用 $in 或 $nin

javascript - ng-repeat 运行与整数参数一样多的次数在某些情况下不起作用

javascript - 延迟加载 javascript

javascript - 无法删除数组中的所有 Boolean == false

javascript - 从 contentEditable div 中删除格式

python - 在 mongoalchemy 0.21 中指定连接字符串的位置

Java Mongodb 更新数据库对象

mongodb - `$eq` 运算符是否适用于数组点表示法?

node.js - 我正在使用 express js、mongoose 和 ember js。有没有办法只写一次模型?

MongoDB 聚合 - 不同计数特定元素