猫鼬不会执行findById回调
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猫鼬不会执行findById回调相关的知识,希望对你有一定的参考价值。
我开始失去理智。为什么这个简单的猫鼬命令不起作用?由于架构更改,我正在编写脚本来更新数据库中的项目,无论出于何种原因,我都无法使实际的更新方法正常工作。他们不会出错,也不会出错。他们只是不执行。我的脚本中的所有其他内容(与db连接交互)都可以正常执行。
这是我的代码的要旨:
const db = require('../../server/db');
async function itemMigration() {
const items = await db.Items.find().exec();
if (items) {
items.forEach( async item => {
console.log(item); // this works! It logs the item to my console.
// this doesn't do anything.
await db.Items.findById(item._id, (err, doc) => {
if (err) {
console.log(err)
}
console.log(item.type)
doc.set(item);
doc.save();
})
}
}
}
我期望这段代码要做的是在我的数据库中找到所有的items
,对其进行迭代,然后更新每个。第一部分按预期工作。我得到了项目,并将每个项目记录到控制台。 findById()
部分是不执行的部分。我已经尝试过有/没有await
命令...没什么区别。我应该在控制台上看到日志,但是都没有出现
答案
在这种情况下也需要等待[itemMigration()
以上是关于猫鼬不会执行findById回调的主要内容,如果未能解决你的问题,请参考以下文章