mongoose中的静态变量是否可能?

时间:2014-11-30 13:48:51

标签: node.js mongodb mongoose static-variables

我想知道是否有任何方法可以在Mongoose中实现某种静态变量,这在计数器中很有用(我的Java背景偏向于我)。

考虑典型的例子:

var AnimalSchema = new Schema({
    name: String
  , type: String
});

如何实现狗计数器?我在想var dogs=0;之类的东西 和静态方法,如:

AnimalSchema.statics.aNewDog= function aNewDog () {
  var dogs++;
}
每次我们创建一个新的动物类型狗时都会调用

。同样是一种获得狗数的方法。我想这在计算上要比在某种循环中计算狗的数量要求低。 我希望我说明了一点,也许已经有一种简单的方法可以做到这一点。

1 个答案:

答案 0 :(得分:1)

我认为这不是一个好主意。

当您有多个nodejs程序或mongodb客户端时,它将是不同步的。

并且很难与其他mongodb的功能一起运行。

但如果您仍想这样做,可以使用mongoose middleware&插件

var dog = 0; // or query dogs count  

function addDogPlugin(schema, options) {

    schema.post('save', function (doc) {
        if (doc.type === 'dog') dog++;
    });
}

AnimalSchema.plugin(addDogPlugin);