2016-04-26 119 views
0

我目前正在测试一个示例数据库,并且我的查询没有返回任何东西,直到我在保存整型值的变量之前放置了(+)字符在我的$ gt查询运算符中。请摆脱一些见解。MongoDB聚合语法

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

回答

2

因为在你的MongoDB年龄字段是整数类型,使用$gt比较操作,只有当你在比较整数工作。 +在这种情况下的符号是unary运算符返回对象的数字表示形式process.argv[2]。它可以转换整数和浮点数的字符串表示形式,以及非字符串值true,falsenull