我正在编写一个 Node.js 应用程序,它使用 Mongoose 作为 ORM。
我有一个名为 Event 的模型和一个名为 Participant 的模式,它作为子文档存储在我的 Event 模式中。问题是,我需要实现一个应该访问父数据的方法。并且没有关于此的文档(或者我找不到任何文档)。如何从其 child 访问 parent 的数据?
我已经看过几次 $parent
的用法,但它对我不起作用。此外,我已经使用了 this.parent()
,但这会导致 RangeError: Maximum call stack size exceeded
出现在我的示例中。
这是我的代码示例:
const Participant = mongoose.Schema({
// description
});
const eventSchema = mongoose.Schema({
applications: [Participant],
// description
});
const Event = mongoose.model('Event', eventSchema);
Participant.virtual('url').get(function url() {
// the next line causes a crash with 'Cannot get "id" of undefined'
return `/${this.$parent.id}/participants/${this.id}`; // what should I do instead?
});
最佳答案
实际上 this.parent().id
有效:
Participant.virtual('url').get(function url() {
return `/${this.parent().id}/participants/${this.id}`;
});
关于node.js - 如何在 Mongoose 中获取模式的父级?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50379335/