📜  mongoose 填充 id 数组 (1)

📅  最后修改于: 2023-12-03 15:32:57.733000             🧑  作者: Mango

Mongoose 填充 ID 数组

在使用 Mongoose 作为 MongoDB 的驱动程序时,可能会遇到需要填充一个或多个 ID 数组的情况。在这种情况下,我们可以使用 Mongoose 的 populate() 方法来填充关联文档。

填充单个 ID

假设我们有一个 blog 文档包含多个评论的 ID,我们想要填充这些评论,可以使用以下代码:

const Blog = mongoose.model('Blog', blogSchema);
const blog = await Blog.findById(blogId).populate('comments');

这里的 comments 表示我们要填充的评论模型。

填充多个 ID

如果需要填充多个 ID,我们可以采用以下方式:

const Blog = mongoose.model('Blog', blogSchema);
const blog = await Blog.findById(blogId).populate([{ path: 'comments' }, { path: 'tags' }]);

这里的 path 表示我们要填充的模型路径。

使用筛选器填充 ID 数组

在某些情况下,我们需要通过条件筛选出 ID 数组中的文档并填充。这时我们可以使用筛选器来实现。例如:

const Blog = mongoose.model('Blog', blogSchema);
const blog = await Blog.findById(blogId).populate({
  path: 'comments',
  match: { approved: true },
  select: 'text -_id',
  options: { limit: 5 }
});

这里的 match 表示我们通过条件筛选出所有 approvedtrue 的评论,select 表示我们只选择评论的文本内容,并且不选择 ID,options 表示我们只填充前 5 条评论。

总结

Mongoose 的 populate() 方法是填充 ID 数组非常好用的方法。我们可以使用它来填充单个或多个 ID,也可以使用筛选器来进行条件筛选。如果你是一个 MongoDB 的开发者,请一定要熟悉这个方法。