微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在运行 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 举报,一经查实,本站将立刻删除。