如何解决MongoDB使用相同对象数组的另一个字段的值更新数组对象
{
_id: asilu92834,services: [
{
chargeAmount: 10,calculatedChargeAmount: 5,},{
chargeAmount: 20,calculatedChargeAmount: 15,}
]
}
我想要做的是用它的对象的calculatedChargeAmount字段的值来更新chargeAmount字段。更新后,文档应如下所示:
{
_id: asilu92834,services: [
{
chargeAmount: 5,{
chargeAmount: 15,}
]
}
我知道在阅读每个文档后如何更新此文档,然后使用forEach一次更新一个文档。那不是我想要的 我知道updateMany()函数接受聚合管道,在这些管道中,您应该能够执行类似的操作
[
{ $set: { "value1": "$value2"}}
]
但是由于chargeAmount和calculatedChargeAmount嵌套在对象数组的内部,所以我试图这样做
db.collection.updateMany(filter,[
{
$set: {
'services.$[].chargeAmount': '$services.$[].calculatedChargeAmount'
}
}
]);
我收到错误消息,指出Fieldpath字段名称不能以“ $”开头。不可能做我想达到的目标吗?如果可以,怎么办?
解决方法
尝试以下方法:
exclude 'META-INF/*.RSA','META-INF/*.SF','META-INF/*.DSA'
请记住,这里的id是mongoDB中阵列服务的_id。它必须具有一个自动创建的_id。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。