Mongoose 猫鼬填充文档

Mongoose 猫鼬填充文档,mongoose,mongoose-populate,Mongoose,Mongoose Populate,我想创建一个文档,保存它,然后返回一个填充了字段的文档。这是我的代码,但填充的字段未定义(而不是用户名): (此函数是异步的)。我确信用户ID是正确的,因为当我稍后获取此文档时,一切正常(文档的作者已正确填充) 如何在第一个示例中正确填充?您需要使用execPopulate()函数来填充文档 doc.populate("authors", "name").execPopulate(); Documents.find(/*…/).populate(“作者

我想创建一个文档,保存它,然后返回一个填充了字段的文档。这是我的代码,但填充的字段未定义(而不是用户名):

(此函数是异步的)。我确信用户ID是正确的,因为当我稍后获取此文档时,一切正常(文档的作者已正确填充)


如何在第一个示例中正确填充?

您需要使用
execPopulate()
函数来填充文档

doc.populate("authors", "name").execPopulate();

Documents.find(/*…/).populate(“作者”、“姓名”).exec(/…*/)

在本例中,您正在对查询调用populate函数,因此
.populate()
工作正常。但是

文档填充(“作者”、“姓名”)

这里是在文档中调用populate函数,因此这里需要调用
execPopulate()
来实际执行
populate()
函数

你可以阅读更多关于这方面的内容


另外,您在错误的位置使用了
wait

var doc = new Documents({
  authors: [currentUserId, otherUserId]
});
// await needs to be here
await doc.save();
return doc.populate("authors", "name");

您需要使用
execPopulate()
函数来填充文档

doc.populate("authors", "name").execPopulate();

Documents.find(/*…/).populate(“作者”、“姓名”).exec(/…*/)

在本例中,您正在对查询调用populate函数,因此
.populate()
工作正常。但是

文档填充(“作者”、“姓名”)

这里是在文档中调用populate函数,因此这里需要调用
execPopulate()
来实际执行
populate()
函数

你可以阅读更多关于这方面的内容


另外,您在错误的位置使用了
wait

var doc = new Documents({
  authors: [currentUserId, otherUserId]
});
// await needs to be here
await doc.save();
return doc.populate("authors", "name");

然后(t=>t.populate('my-path').execPopulate())谢谢!我不知道save有一个then函数。我该如何返回呢?doc.save()。然后(t=>t.populate('my-path')。execPopulate())谢谢!我不知道save有一个then函数。但是我该怎么回报呢?