NodeJS/Mongoose-如何在连接后引用单个模型



我将两个模型(博客和事件(连接起来,这样我就可以在一个forEach循环中显示两个集合的所有记录:

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

然而,在forEach循环中,在某些情况下,我仍然希望引用它来自的原始模型,例如"如果博客,title等于Blog,如果事件,title等于事件"。我有一个解决方法,我使用每个模型中的一个唯一字段来确定底层模型,如下所示:

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

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

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

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";
}
});

最新更新