在mongoose中有没有办法为所有Schema创建全局实例调用?

时间:2016-08-08 11:56:15

标签: node.js mongodb mongoose call instance

我知道可以为每个Schema创建实例方法,但有没有办法创建与所有Schema相关的实例调用。

1 个答案:

答案 0 :(得分:1)

您可能想要创建一个函数,然后该函数想要用于所有架构。

如果我已了解您的要求,那么您需要在单独的文件中创建一个函数,并将该文件添加为架构插件。

例如:

lastUpdate.js 文件中

创建一个函数,该函数将用于不同的模式

module.exports = exports = function lastUpdatePlugin (schema) {
  schema.add({ updateTime: Date })

  schema.pre('save', function (next) {
    this.updateTime= new Date
    next()
  });
}
user.js 架构文件中的

var lastUpdate = require('./lastUpdate');//load lastUpdate.js file
var User= new Schema({name: String, ... });
User.plugin(lastUpdate);
bank.js 架构文件中的

var lastUpdate = require('./lastUpdate');//load lastUpdate.js file
var Bank= new Schema({bankName: String, ... });
Bank.plugin(lastUpdate);

然后,当保存userbank时,会自动更新每个架构的updateTime