使用 nodejs 在我的 mongodb 上每天安排一个任务 运行
Schedule a task to be run everyday on my mongodb using nodejs
我一直在尝试做一些听起来很容易但无法做到的事情。
我希望每天都有一个函数被调用,这样它就会改变我数据库中的一个值。
为此,我使用了 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
是异步操作,但您没有等待它。因此,要么等待它并使您的函数异步,要么 return 它作为一个承诺。
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);
我一直在尝试做一些听起来很容易但无法做到的事情。 我希望每天都有一个函数被调用,这样它就会改变我数据库中的一个值。 为此,我使用了 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
是异步操作,但您没有等待它。因此,要么等待它并使您的函数异步,要么 return 它作为一个承诺。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);