2024-09-25 10:27:59 发布
网友
我有个目标:
我想把“estado”的所有值都设置为“false”
我尝试使用$elemMatch查找所有字段,并将其作为筛选器传递给$set方法,但我认为$elemMatch只适用于数组
$elemMatch
$set
我想您已经意识到了这一点,但是虽然mongo没有很好的操作符来处理带有任意键的嵌套对象,但是它确实有很好的数组操作符,这使得它变得简单(而且快速!)更新(&A);处理嵌套数组文档。您甚至可以创建索引来处理数组中的键,以加快查询速度
根据应用程序代码在多大程度上依赖于此数组结构,您可能希望首先将文档转换为数组,然后使用https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/更新文档。要转换文档,可以在应用程序代码中编写脚本,在js的mongo shell中编写脚本,或者使用带有$out的聚合管道将文档写入新集合
如果更新模式不可行,我认为您必须编写一个脚本来更改那些嵌套的文档字段
我想您已经意识到了这一点,但是虽然mongo没有很好的操作符来处理带有任意键的嵌套对象,但是它确实有很好的数组操作符,这使得它变得简单(而且快速!)更新(&A);处理嵌套数组文档。您甚至可以创建索引来处理数组中的键,以加快查询速度
根据应用程序代码在多大程度上依赖于此数组结构,您可能希望首先将文档转换为数组,然后使用https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/更新文档。要转换文档,可以在应用程序代码中编写脚本,在js的mongo shell中编写脚本,或者使用带有$out的聚合管道将文档写入新集合
如果更新模式不可行,我认为您必须编写一个脚本来更改那些嵌套的文档字段
相关问题 更多 >
编程相关推荐