node.js - 使用 nodejs 安排每天在我的 mongodb 上运行的任务
问题描述
我一直在尝试做一些听起来很容易但无法让它发挥作用的事情。我希望每天都调用一个函数,这样它就会改变我数据库中的一个值。为此,我使用 js 中的 setInterval() 函数
setInterval(()=>reset(),10000)
我的重置功能在哪里
function reset(){
console.log("here")
try{
const user = Users.updateMany(
{$set : { voteAverage : 1 }}
);
console.log("good")
}catch(err){
res.json({message: err})
console.log(err)
}
}
我在控制台中恢复了良好状态,但我的数据库没有改变。我可能会以错误的方式这样做,但我真的不知道该怎么做。起初,我在修补路由时尝试重置所有内容,并且它起作用了。但是现在我不想使用路由只是想让它像这样运行。这甚至可能吗?
提前致谢
解决方案
我在这里看到两个问题
updateMany
是异步操作,但您没有等待它。因此,要么等待它并使您的函数异步,要么将其作为承诺返回。updateMany
有两个参数。第一个是过滤器,第二个是文档。我猜你没有提供任何过滤器。
像这样的东西
async function reset() {
console.log("here");
try {
const user = await Users.updateMany(
{"$set": {"voteAverage": 1}}
);
console.log("good");
} catch (err) {
res.json({"message": err});
console.log(err);
}
}
setInterval(async () => reset(), 10000);
推荐阅读
- java - 在 AWS Amazon 上自动执行 api
- python - 如何以英寸为单位获得 matplotlib 绘图区域的大小?
- sql - 如何在PostgreSQL数据库中只保留一个条目
- c++ - c ++双向链表错误C2664'object1 :: object1(object1 &&)':无法将参数1从'int'转换为'const object1 &'
- c# - 什么是 WPF Datagrid 开头的(空)列称为
- python - 如何修复 aiohttp 应用程序中初始化引擎的 aiopg 异常?
- html - Pictures don't align and won't scale properly
- java - 如何使用一个 logback appender 从 2 个进程记录到 2 个不同的文件?
- python - 损失函数在 Tensorflow 中是如何工作的?它们是如何从批次中计算出来的?
- c++ - 向其添加新部分时,PE 可执行文件已损坏