我正在编写一个 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/

10-15 15:02