MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

TypeError:l'oggetto non è una funzione nell'utilizzo di MongoDB con Node.js

L'ultimo argomento di collection.aggregate() deve essere un callback. Il driver mongodb si aspetta una funzione ma il tuo ultimo argomento è un oggetto. Ecco perché stai ricevendo quell'errore. Ecco il codice rivisto con la richiamata:

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