这段代码的目的是要更新一个名为 prizes 的数组中第一个值为 8.8 的元素,但当前代码会将数组中所有的 8.8 都更新,作者希望得到一个只更新第一个匹配项的方法。作者曾尝试在 "prizes.$[prize]" 后面加上 ".$" 或 ".1" 等来获取第一个匹配项但并不奏效,希望能得到指点。
笨办法是先通过遍历将 prizes 修改好,再赋给 updateOne 修改,但当前作者不想这么做。可以使用 findOne 找到第一个匹配项的索引,然后构建一个操作符来更新该项即可实现目的。具体实现代码如下: