我正在测试一个示例数据库,我的查询没有返回任何内容,直到我在 $ gt 查询运算符中保存整数值的变量之前放置了(+)字符。请提供一些见解。
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();
});
});
答案 0 :(得分:2)
因为mongodb中的age字段是整数类型,所以使用$gt
比较运算符仅在比较整数时有效。
在这种情况下,+
符号是 unary 运算符,它返回对象process.argv[2]
的数字表示形式。它可以转换整数和浮点数的字符串表示形式,以及非字符串值true
,false
和null
。