有没有办法避免使用Mongoose进行硬编码?

考虑下面的代码,其中“团队”是一个mongoose模型。

var Team = mongoose.model( 'Team' ); Team.find({'GroupName':gname}, function (err, teams) { // Some code } 

如何在mongo中select硬编码“GroupName”:gname时去掉这个硬编码?

一种方法是在模型上定义静态方法 ,公开一个DAO接口来封装这些细节:

Team.js

 teamSchema.statics.findByGroupName = function (gname, cb) { this.find({ GroupName: gname }, cb); }; ... 

Other.js

 Team.findByGroupName(gname, function (err, teams) { // Some code });