在静态内部的模型上使用find

时间:2012-12-10 04:17:05

标签: node.js static find mongoose

我尝试做的是这样的事情:

A_Schema.statics.init = function init() {
    A_Schema.find({}, {}, {
    }, function (error, docs) {
        if (!error) {
            console.log('There is no error.');
        }
        else {
            console.log(error);
        }
    });
};

我的意思是,使用A_Schema模型的find方法,但它会一直崩溃。

我认为这是因为内部A_Schema必须是正确定义的模型而不是模式,但我不知道该怎么做。

我已经尝试过:

A_Schema.statics.init = function init() {
    mongoose.model('A_Schema', A_Schema).find({}, {}, {
    }, function (error, docs) {
        if (!error) {
            console.log('There is no error.');
        }
        else {
            console.log(error);
        }
    });
};

A_Schema.statics.init = function init() {
    mongoose.model('A_Schema').find({}, {}, {
    }, function (error, docs) {
        if (!error) {
            console.log('There is no error.');
        }
        else {
            console.log(error);
        }
    });
};

但它一直在崩溃。

你能帮助我吗?

提前致谢

Diosney

1 个答案:

答案 0 :(得分:0)

很抱歉,我似乎忽略了mongoose文档。

mongoose documentation可以看到示例:

animalSchema.statics.findByName = function (name, cb) {
  this.find({ name: new RegExp(name, 'i') }, cb);
}

因此,在静态内部必须使用this引用而不是命名模型。