我们如何更新子文档并添加具有来自同一子文档的值的新字段?

问题描述

我正在运行 mongo DB 版本 4.4.5。 我的收藏中有以下文档:

{
    "_id" : "601a597c9932756822d134cb","certificate" : {
        "complete" : true,"validFromTimestamp" : NumberLong("1612126800000"),"validToTimestamp" : NumberLong("1643576400000")
    }
}

我想更新记录并在证书子文档中添加一个字段 nominatedTimestamp,其值与 certificate.validFromTimestamp 相同。

我尝试了以下 MQL 查询

db.collection_name.update({
    "certificate.validFromTimestamp": {
        $exists: true
    },"certificate.nominatedTimestamp": {
        $exists: false
    }
},{
    $set: {
        "certificate.nominatedTimestamp": "$certificate.validFromTimestamp"
    }
})

然而,结果(如下图)是certificate.nominatedTimestamp是字符串"$certificate.validFromTimestamp" 而不是预期值 NumberLong("1612126800000") :

{
    "_id" : "601a597c9932756822d134cb","validToTimestamp" : NumberLong("1643576400000"),"nominatedTimestamp" : "$certificate.validFromTimestamp"
    }
}

如何让它选择 NumberLong("1612126800000") 的值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)