sql >> Base de Datos >  >> NoSQL >> MongoDB

TypeError:el objeto no es una función al usar MongoDB con Node.js

El último argumento de collection.aggregate() debe ser una devolución de llamada. El controlador mongodb espera una función, pero su último argumento es un objeto. Por eso te da ese error. Aquí está el código revisado con la devolución de llamada:

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();
    }
  );
});