所以我有这个东西
{ name: "sunil"
tags:null
}
{ name: "radha"
tags:[{k:"max",v:"4"},{k:"min",v:"3"}]
}
我想更新这两个文件与一些新的标签对象,我想$设置,如果标签字段为空和$推,如果它不是。这是所有的虚拟数据,但结构是相同的,为我的数据以及。我在updateMany中没有看到任何选项可以做到这一点。你能告诉我如何创建一个可以做到这一点的查询吗?
我尝试了updateMany与iframe操作符,但它不工作的插入$iframe,因为它是数据库。我检查了其他问题,但没有一个符合我的场景。
1条答案
按热度按时间svmlkihl1#
你需要一个带有聚合管道的更新查询来按条件添加元素:
1.如果
tags
字段为null
、missing或undefined
,则在字段中设置一个包含新元素的数组。1.否则,通过
$concatArrays
将元素添加到tags
字段中。Demo @ Mongo Playground