Đối số cuối cùng của collection.aggregate () cần phải là một lệnh gọi lại. Trình điều khiển mongodb đang mong đợi một hàm nhưng đối số cuối cùng của bạn là một đối tượng. Đó là lý do tại sao bạn gặp lỗi đó. Đây là mã đã sửa đổi với lệnh gọi lại:
var MongoClient = require('mongodb').MongoClient;
var server = require('mongodb').Server;
var mongoclient = new MongoClient(new server("localhost", 27017));
mongoclient.connect("mongodb://localhost:27017/", function(err, db) {
if (err) throw err;
var db = mongoclient.db('school');
cursor = db.collection('students').aggregate(
[
{$match: {"scores.type": "homework"}},
{$unwind: "$scores"},
{
$group: {
_id: '$name',
'minimum': {$min: "$scores.score"}
}
}
], function(err, result) { // callback
console.dir(result);
db.close();
}
);
});