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

Node.js mongoose中的静态变量是否可能?,node.js,mongodb,mongoose,static-variables,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++; }

我想知道是否有任何方法可以在Mongoose中实现某种类型的静态变量,例如在计数器中会很有用(我对我的Java背景有偏见)

考虑一个典型的例子:

var AnimalSchema = new Schema({
    name: String
  , type: String
});
如何实现狗计数器?我的想法是
var dogs=0
还有一种静态方法,如:

AnimalSchema.statics.aNewDog= function aNewDog () {
  var dogs++;
}
每次我们创造一种新的狗型动物。还有一个类似的方法来计算狗的数量。我想这在计算上比在某种循环中计算狗的数量要求要低。
我希望我表达了我的观点,也许已经有一个简单的方法可以做到这一点

我觉得这不是个好主意

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

而且它很难与其他mongodb功能一起运行

但如果您仍然想这样做,您可以使用mongoose中间件和插件

var dog = 0; // or query dogs count  

function addDogPlugin(schema, options) {

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

AnimalSchema.plugin(addDogPlugin);

为什么不直接查询
用猫鼬计数?@Chen TsuLin谢谢。我知道这是可能的。我的疑问是,仅仅读取一个变量,还是在每次需要狗的数量时处理一个查询更有效,尤其是当存储了大量文档时。我认为这不是一个好主意的原因是,当您有多个nodejs程序或mongodb客户机时,它将是不同步的。使用其他mongodb的功能很难运行。谢谢,我理解。你的意思是这可能不是线程安全的吗?