我需要使用嵌套数组对象字段更新字段值。
我有一个文件:
{
"_id" : ObjectId("5e91c7d4249c4035086d6339"),
"codigo" : "000002",
"cnpjs" : [
{
"cnpj" : "00000000000000"
}
],
"descricao" : "PLANO SUPREME",
"status" : "A",
"tabpreco" : "005",
"taxaadesao" : 0,
"cnpj" : ""
}
我需要做这样的事情,但是没有用:
db.planos.update({},
{ $set: { 'cnpj': 'cnpjs.0.cnpj' } },
{ multi: true, upsert: false }
)
如何访问对象数组中的嵌套字段?
答案 0 :(得分:0)
如果您使用的是MongoDB 4.2+,则可以通过聚合运算符使用更新的管道形式:
db.planos.update({},
[
{$set:{cnpj:{$arrayElemAt:["$cnpjs",0]}}},
{$set:{cnpj:"$cnpjs.cnpj"}}
],
{multi:true}
)