【发布时间】:2021-06-26 00:02:08
【问题描述】:
我有两个收藏:authors 和 books
作者示例:
{
_id: "605f6746c114544ee04228bd"
firstName: "firstName",
lastName: "lastName",
}
书籍示例:
{
_id: "605f6746c114544ee04228bd"
title: "title",
pages: 350,
}
我想获取作者名字和姓氏的书籍列表。
这是我当前的代码:
let books;
books = await Book.find();
books.forEach(async (book, i) => {
const author = await Author.findOne(
{ _id: book.authorId },
{ firstName: 1, lastName: 1, _id: 0 }
);
books[i].authorFirstName = author.firstName;
books[i].authorLastName = author.lastName;
});
这不是一个好习惯,因为对于每本书,我都会对 mongodb 数据库执行另一个请求! 有更好的解决方案吗?
【问题讨论】:
-
使用
mongoose.populate,就是将两个模型链接在一起的方式 -
谢谢@Mastermind 它有效
标签: node.js database mongodb mongoose aggregate