如何在'n'
下面传递'5'
而非硬编码Xcom.find({ $where : "this.NIC_No == '5'" }
?
exports.query_by_nic = function ( req, res ){
var n = req.body.NIC_No;
console.log(n); //n prints correctly as expected
Xcom.find({ $where : "this.NIC_No == '5'" }, function ( err, xcoms ){ //works with '5' but how do I query for 'n'?
res.render( 'query_by_nic', {
title : 'Query by NIC',
xcoms : xcoms
});
console.log(err);
console.log(xcoms);
});
};
答案 0 :(得分:4)
你可以这样做:
Xcom.find({ $where : "this.NIC_No == '" + variableThatContainsNumber + "'" }, function ( err, xcoms ){
...
});
甚至更好:
Xcom.find({NIC_No: variableThatContainsNumber}, function(err, doc) {
...
});
第二个更好,因为它不需要在MongoDB中执行JavaScript。
答案 1 :(得分:0)
这将有效:
{ $where : "this.NIC_No == '" + n + "'" }
虽然您传递的是用户可以直接设置的值,但这可能不是一个好主意。如果n
始终是一个数字,请确保使用以下内容更安全:
var n = parseInt(req.body.NIC_No, 10);
如果n
始终是一个数字,则无需在查询中将其放在引号中:
{ $where : "this.NIC_No == " + n }