我正在尝试编写一个查询来根据某种逻辑将 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}
)
关于javascript - 如何使用同一记录中的现有值更新 MongoDB 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76212206/