MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

TypeError:Objekt ist keine Funktion bei der Verwendung von MongoDB mit Node.js

Das letzte Argument von collection.aggregate() muss ein Callback sein. Der Mongodb-Treiber erwartet eine Funktion, aber Ihr letztes Argument ist ein Objekt. Deshalb bekommst du diesen Fehler. Hier ist der überarbeitete Code mit dem Callback:

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