NodeJS Mongoose:如何从虚拟getter访问填充字段?

7lrncoxx  于 2023-02-03  发布在  Node.js
关注(0)|答案(1)|浏览(136)

我有一对夫妇的模式:

var parentSchema = new Schema({name: String});
var childSchema = new Schema({
    name: String,
    parent: {type: Schema.ObjectId, ref: 'Parent'}
});

我希望能够调用Child.find().populate('parent'),然后使用以下虚拟getter:

childSchema.virtual('url').get(function () {
    return "/" + this.parent.name + "/" + this.name
});

然而,当我调用find().populate(),然后将得到的子元素传递给视图,并尝试使用child.url时,总是得到parent.name设置为undefined。

rm5edbpk

rm5edbpk1#

我知道这是个老问题,但你可以试试这样的问题:

childSchema.virtual('url').get(function () {
    this.populate("parent");
    return "/" + this.parent.name + "/" + this.name
});

官方文件里有提到。

相关问题