我想知道是否有任何方法可以在Mongoose中实现某种静态变量,这在计数器中很有用(我的Java背景偏向于我)。
考虑典型的例子:
var AnimalSchema = new Schema({
name: String
, type: String
});
如何实现狗计数器?我在想var dogs=0;
之类的东西
和静态方法,如:
AnimalSchema.statics.aNewDog= function aNewDog () {
var dogs++;
}
每次我们创建一个新的动物类型狗时都会调用。同样是一种获得狗数的方法。我想这在计算上要比在某种循环中计算狗的数量要求低。 我希望我说明了一点,也许已经有一种简单的方法可以做到这一点。
答案 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);