Mongoose新版本中execPopulate()方法是否已被官方废弃?
execPopulate() 废弃说明
是的,execPopulate() 方法已经在 Mongoose 6.0 及更高版本中被正式移除,该方法原本用于执行文档关联填充的逻辑,已经被整合到 populate() 方法内部。
Mongoose 6.0 之后,文档实例调用 populate() 会直接返回 Promise,无需再链式调用 execPopulate() 触发执行,这就是你收到 execPopulate() is not a function 报错的直接原因。
代码修复方案
你只需要删除代码中的 execPopulate() 调用即可正常运行,修改后代码如下:
main() const main = async () =>{ const task = await Task.findById('614ac31e103d9c5329d38686') await task.populate('owner') console.log(task.owner) }
你也可以直接在查询阶段就完成关联填充,写法更简洁:
main() const main = async () =>{ // 查询时直接调用populate,无需后续单独处理 const task = await Task.findById('614ac31e103d9c5329d38686').populate('owner') console.log(task.owner) }
内容的提问来源于stack exchange,提问作者Rohit Prajapati
相关产品推荐
相关产品推荐

