对象(不是数组)中的consult text是否有“$elemMatch”?

2024-09-25 10:27:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个目标:

My case

我想把“estado”的所有值都设置为“false”

我尝试使用$elemMatch查找所有字段,并将其作为筛选器传递给$set方法,但我认为$elemMatch只适用于数组


Tags: 方法false目标数组setestadoelemmatch
1条回答
网友
1楼 · 发布于 2024-09-25 10:27:59

我想您已经意识到了这一点,但是虽然mongo没有很好的操作符来处理带有任意键的嵌套对象,但是它确实有很好的数组操作符,这使得它变得简单(而且快速!)更新(&A);处理嵌套数组文档。您甚至可以创建索引来处理数组中的键,以加快查询速度

根据应用程序代码在多大程度上依赖于此数组结构,您可能希望首先将文档转换为数组,然后使用https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/更新文档。要转换文档,可以在应用程序代码中编写脚本,在js的mongo shell中编写脚本,或者使用带有$out的聚合管道将文档写入新集合

如果更新模式不可行,我认为您必须编写一个脚本来更改那些嵌套的文档字段

相关问题 更多 >