NodeJS/Mongoose - 如何在串联后引用单个模型?

NodeJS/Mongoose - How to reference individual models after concatenation?

我正在连接两个模型(博客和事件),因此我可以在单个 forEach 循环中显示来自两个 collections 的所有记录:

const blogs = await Blog.find({});
const events = await Event.find({});
const blogsAndEvents = blogs.concat(events);

blogsAndEvents.forEach(function(blogOrEvent) { etc. etc.

但是,在 forEach 循环中,在某些情况下,我仍想引用它来自的原始模型,例如'如果是博客,标题等于 BLOG,如果是事件,标题等于事件)。我有一个解决方法,我使用每个模型的唯一字段来确定基础模型,如下所示:

if (blogOrEvent.blogPost) {
    title = "BLOG"
} elseIf (blogOrEvent.eventDate) {
    title = "EVENT"
}

这种方法对我来说似乎不太干净,因为它依赖于它们在每个模型中都是一个独特的领域。有没有更好的方法可以在循环中访问原始底层模型?谢谢

使用 mongoose 文档可以清楚地验证它们属于哪个 Model 使用 instance of :

  const blogs = await Blog.find({});
  const events = await Event.find({});
  const blogsAndEvents = blogs.concat(events);

  blogsAndEvents.forEach(function (blogOrEvent) {
    if (blogOrEvent instanceof Blog) {
      title = "BLOG";
    } else if (blogOrEvent instanceof Event) {
      title = "EVENT";
    }
  });