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";
}
});
我正在连接两个模型(博客和事件),因此我可以在单个 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";
}
});