gpt4 book ai didi

node.js - Mongoose 更新不会立即回电

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:39 25 4
gpt4 key购买 nike

我确信这只是一个误会,但我无法弄清楚:/

我正在尝试在 Node 服务器上使用 mongoose 更新 mongoDB 中的文档。

我的代码如下所示:

Message.update(searchQuery, updateQuery, function(err, response)
{
if(err) return handleError(err);
if(response) console.log(util.inspect(response));
});

当我第一次调用此函数时,回调不会执行,并且不会对数据库应用任何更改。实际上,更新并未发生。

当我第二次调用该函数时,第一次调用的回调返回,第一次更新的更改将应用​​于数据库。但第二次调用的回调不会返回,并且不会应用第二次调用的任何更改。

当我第三次调用它时,回调 2 返回并应用更改 2,但不回调并应用更改 3。依此类推...

我认为这与未指定回调时不直接执行的 mongoose 函数有关,因此我尝试添加一个空的“选项”数组:

Message.update(searchQuery, updateQuery, **{}**, function(err, response){...});

或显式执行更新:

Message.update(searchQuery, updateQuery).exec( function(err, response){...});

但结果没有变化。

最佳答案

缺少 Mongoose 回调通常是由于更新等待连接打开而导致的,因为对 updatesavefind 等的任何调用都将由 Mongoose 排队,直到 mongoose.connect 调用完成。

因此,请确保在调用 update 之前进行 mongoose.connect 调用。

关于node.js - Mongoose 更新不会立即回电,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986025/

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