1

Mongodb 2.2.0 和 mongoose 3.3.1

我正在尝试在以下查询上 运行聚合:

var db = mongoose.connect('localhost', 'test', '27017').connection;
var testSchema = new Schema;
var tr= db.model('tests', testSchema);  

tr.aggregate({'$group':{'_id':'$test_id', 'average':{$avg:'$tes_tscore'}}})

以下错误不断弹出:

TypeError: Object function model(doc, fields, skipId) {
    if (!(this instanceof model))
      return new model(doc, fields, skipId);
    Model.call(this, doc, fields, skipId);
  } has no method 'aggregate'  

猫鼬还不支持聚合还是我的代码缺少某些东西?

** 该tests集合有超过 1000 个文档。运行tr.find(... console.log(...)返回所需的文档。

4

2 回答 2

1

我解决了。

放入console.log(mongoose.version);脚本显示为过时版本(3.0.2)。

我重新浏览了这些模块(这次很小心)并删除并重新安装了mongoose.
版本 3.3.1,aggregate现在可以使用。

aggregate上线 v.3.1.0

于 2012-11-14T23:13:14.217 回答
0

在 3.x 中支持聚合。您示例中的代码看起来不错,但以某种方式tr引用了 model() 方法而不是模型实例。如果您能够始终如一地重新创建此问题,请使用要运行的确切代码打开票证,我们会修复它。

https://github.com/LearnBoost/mongoose/issues/new

于 2012-11-05T05:15:07.963 回答