在我的Mongoose架构中,我有一个根据文档中的各种属性计算的虚拟。其他虚拟使用这个虚拟,所以我希望缓存这个昂贵的计算。 最佳答案 是的。只需将计算结果设置为不保存到数据库的属性即可。下次调用虚拟函数时,返回该属性。schema.virtual('x').get(function(){if(this._x)returnthis._x;varx=expensiveCalculation();this._x=x;returnx;});请注意,如果计算取决于文档的其他属性,如果您更改这些属性,则必须使缓存无效。您可以为那些为您执行此操作