我有一个在MOngoDB / Mongoose中定义的递归数据结构。
如果我想在结果数据对象中添加方法,那就简单如下:
FooSchema = {name:String, children:[{type:Schema.ObjectId}]};
FooSchema.methods.nonRecursiveMethod = function(){
//Place code here
};
model.exports = mongoose.model('Foo', FooSchema);
问题:如何编写需要递归的方法?它需要能够在创建之前调用生成的模型对象('Foo')。 E. G。
FooSchema = {name:String, children:[{type:Schema.ObjectId}]};
FooSchema.methods.nonRecursiveMethod = function(){
Foo.where('_id').in(this.children).exec(function(err, results){
results.forEach(function(item, index, array){ item.FooSchema });
})
};
model.exports = mongoose.model('Foo', FooSchema); // Generates 'Foo' object
示例操作可能是我需要销毁父节点及其所有子节点的地方。我希望这个逻辑存在于Foo对象上,因为它就是它所属的地方,但是......我如何在那里得到它?