MongoDB 4.4.25中用字段值更新字段时$符号失效问题咨询
问题原因及解决方案
原因
在MongoDB 4.4版本中,你当前使用的是传统更新语法,这种语法下$set里的'$creationDate'会被识别为普通字符串字面量,而非对已有字段creationDate的值引用。传统更新操作(非聚合管道模式)不支持直接将一个字段的值赋值给另一个字段。
正确写法
需要改用聚合管道形式的更新语句,通过$set聚合操作符结合字段引用语法实现字段值的复制:
db.getCollection("myCollection").updateMany( {}, [ { "$set" : { "updateDate" : "$creationDate" }} ] )
核心区别是把第二个参数从普通对象改成数组形式的聚合管道,此时MongoDB会将$creationDate解析为对文档中creationDate字段的引用,而非字符串。
内容的提问来源于stack exchange,提问作者sab
相关产品推荐
相关产品推荐

