MongoDB不能调用未定义的方法'聚合'

我正试图拉数组中的最低分数。 我的错误是不能调用未定义的方法'聚合'。 聚合方法在mongodb中定义,我甚至可以定义它,而db.students也是定义的。 我似乎无法find我错在哪里。

var MongoClient = require('mongodb').MongoClient // Driver for connecting to MongoDB MongoClient.connect('mongodb://localhost:27017/school', function(err, db) { if(err) throw err; x = db.students.aggregate( [{ "$unwind":"$scores" },{"$match":{"scores.type":"homework"}},{ "$group":{"_id":"$_id","minscore":{"$min":"$scores.score" }}} ] ) x.result.forEach(function(doc) { db.students.update( { "_id": doc._id }, { "$pull": { "scores" : { "score":doc.minscore, "type":"homework" } } } ); }); }); 

我有这种感觉,因为盯着这个太长时间了,我感到用一双新的眼睛来看这个东西。

如果要使用节点驱动程序,则不能使用与在Mongo shell中相同的语法。 应该是这样的:

 db.collection('students').aggregate(); 

这是参考。