You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB如何先检查数组是否存在指定值,不存在才添加字符串元素

MongoDB数组不存在指定元素才添加的解决方案

你当前使用的$push操作符会无条件向数组插入元素,因此会出现重复值。你可以直接替换为MongoDB原生的$addToSet操作符,它会自动校验目标数组中是否已存在待插入元素,仅不存在时才执行添加,属于原子操作,无需额外写前置查询判断逻辑,也不会有并发冲突问题。

修改后的代码如下:

Scorecard.findOneAndUpdate(
    { _id: fielderRoleInfo.player_id },
    { $addToSet: { ["score." + n + ".catches"]: dismissedPlayer } },
    function (err, docs) {
      if (err) {
        console.log(err);
      } else {
        // console.log("Updated Fielder : ", docs);
      }
    }
  );

如果需要确认是否真的执行了插入操作,可以在查询参数中添加{ new: true }配置项,拿到更新后的最新文档对比数组变化即可。

内容的提问来源于stack exchange,提问作者Muhammad Danyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:06:07