请注意,此线程中建议使用$[]的某些答案是错误的。
db.collection.update(
{"events.profile":10},
{$set:{"events.$[].handled":0}},
{multi:true}
)
上面的代码将“events”数组中的所有元素的“handled”更新为0,而不管其“profile”值如何。询问
{"events.profile":10}
只过滤整个文档,而不是数组中的文档。在这种情况下,必须使用
$[elem]
具有
arrayFilters
指定数组项的条件,以便尼尔·伦恩的答案是正确的。