2016-04-26 4 views
0

Ich teste gerade eine Beispieldatenbank und meine Abfrage gab nichts zurück, bis ich das Zeichen (+) vor die Variable mit dem Ganzzahlwert in meinem Abfrageoperator $ gt setzte. Bitte werfen Sie einen Einblick.MongoDB-Aggregationssyntax

var mongo = require('mongodb').MongoClient; 
var age = process.argv[2]; 
// console.log(process.argv); 

var url = 'mongodb://localhost:27017/learnyoumongo'; 

mongo.connect(url, function(err, db){ 
    if (err) throw err; 
    var parrots = db.collection('parrots'); 
    parrots.count({ 
     "age": {$gt: +age} // What does (+) do? 
    }, function(err, data){ 
     if (err) throw err; 
     console.log(data); 
     db.close(); 
    }); 
}); 

Antwort

2

Da das Altersfeld in Ihrem mongodb von Integer-Typ ist, der einzige $gt Vergleich Operator funktioniert, wenn Sie ganze Zahlen vergleichen. Das Zeichen + in diesem Fall ist ein unary Operator, der die Zahlendarstellung des Objekts process.argv[2] zurückgibt. Es kann Zeichenfolgendarstellungen von Ganzzahlen und Gleitkommazahlen sowie die Nicht-Zeichenfolgenwerte true, false und null konvertieren.