【问题标题】:On upsert with Mongo node driver, did it insert or update? [duplicate]在使用 Mongo 节点驱动程序进行 upsert 时,它是插入还是更新? [复制]
【发布时间】:2026-02-07 00:10:01
【问题描述】:

我正在使用 Mongo 的本地节点驱动程序。对于这样的 upsert:

collection.update(query, setData, { upsert: true }, callback);

有没有办法确定 upsert 是插入还是更新?使用 Mongo shell,您可以返回 WriteResult.nUpserted 来确定这一点,但我不确定如何从节点本机驱动程序中获取该信息。 http://docs.mongodb.org/manual/reference/method/WriteResult/#WriteResult.nUpserted

谢谢。

【问题讨论】:

    标签: node.js mongodb node-mongodb-native


    【解决方案1】:

    您应该能够通过检查传递给回调的第三个参数来找出答案:

    collection.update(query, setData, {upsert: true}, function(err, nAffected, raw) {
      if (err) throw err;
      console.dir(raw);
      // raw will contain updatedExisting and the inserted item _id (if applicable)
    });
    

    【讨论】:

      最近更新 更多