gpt4 book ai didi

node.js - 实例方法中的 Mongoose 种群

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:16 25 4
gpt4 key购买 nike

我有一个引用其他文档的模型。我希望该模型中有一种方法可以处理引用模型中使用的数据。

'use strict';

var mongoose = require('mongoose')
, Schema = mongoose.Schema
, deepPopulate = require('mongoose-deep-populate');

var MainSchema = new Schema({
childs: [{type:Schema.ObjectId, ref: 'Child'}], //because many-to-one
startDate: {type: Date, default: Date.now},
endDate: {type: Date},
});


MainSchema.methods = {

retrieveChilds: function(callback) {

// deepPopulation of childs not possible??

callback(result);
},
};

MainSchema.plugin(deepPopulate);

module.exports = mongoose.model('Main', MainSchema);

如上面的代码示例所示,retrieveChilds 函数应在当前 Schema 上执行 deepPopulate 函数。这是可能的还是应该发生在模型之外? (有时会导致重复代码)

最佳答案

Mongoose instance methods , this 是调用该方法的文档实例,因此您可以执行以下操作:

MainSchema.methods = {
retrieveChilds: function(callback) {
this.deepPopulate('childs.subject.data', callback);
},
};

然后调用它:

main.retrieveChilds(function(err, _main) {
// _main is the same doc instance as main and is populated.
});

关于node.js - 实例方法中的 Mongoose 种群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30868443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com