gpt4 book ai didi

node.js - findOneAndUpdate 在插入时返回 null?

转载 作者:可可西里 更新时间:2023-11-01 09:48:45 28 4
gpt4 key购买 nike

我想要的是:

  1. 如果插入成功则返回1,即使文档之前不存在。
  2. 如果更新成功返回1

但我似乎无法使用 findOneAndUpdate 实现此目的,它仅在文档存在并成功更新时才返回结果。

我的查询:

User.findOneAndUpdate(
{ email: email },
{ $set: { verified: 1 } },
{ upsert: true }
).exec(callback);

最佳答案

您可以访问 native 驱动程序以调用底层集合的 updateOne() updateMany() 方法,它将在 updateWriteOpCallback 中返回来自 Mongo 的完整响应。 回调为 updateWriteOpResult 您可以使用的对象。例如

User.collection.updateOne(
{ "email": email },
{ "$set": { "verified": 1 } },
{ "upsert": true },
function(err, result) {

// The number of documents that matched the filter.
console.log(result.matchedCount);

// The number of documents that were modified.
console.log(result.modifiedCount);

// The number of documents upserted.
console.log(result.upsertedCount);

// The total count of documents scanned.
console.log(result.result.n);

// The total count of documents modified.
console.log(result.result.nModified);
}
);

在这种情况下,您很可能需要检查 result.result.nModifiedresult.upsertedCount 属性以进行上述调用。

关于node.js - findOneAndUpdate 在插入时返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789029/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com