我正在尝试编写一个查询来根据某些逻辑将 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 https://www.mongodb.com/community/forums/t/updatemany-in-mongodb-using-value-of-other-field/99555
我在这里缺少什么?
从 MongoDB 4.2 开始,您可以在更新查询中编写聚合管道(即包括updateMany https://www.mongodb.com/docs/manual/reference/method/db.collection.updateMany/#std-label-update-many-method-agg-pipeline).
db.getCollection("MyCollection").updateMany({
//SOME LOGIC HERE
},
[
{
"$set":{"updatedTs": "$createdTs"}
}
],
{multi:true}
)
蒙戈游乐场 https://mongoplayground.net/p/_LQZKfPKxAr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)