Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如果mongodb类型为string,则查询仅返回文档_Node.js_Mongodb_Express - Fatal编程技术网

Node.js 如果mongodb类型为string,则查询仅返回文档

Node.js 如果mongodb类型为string,则查询仅返回文档,node.js,mongodb,express,Node.js,Mongodb,Express,我正试图让邮递员把一份有具体学生号的文件还给我。目前,如果学生编号的类型为Int,它不会返回任何内容,但如果我将其更改为String,它将按预期工作。正如你可能看到的那样,我最近才开始工作,所以请对我放松点 这里有一些代码 app.get("/students/:snumber", function (req, res, next) { console.log('student number =', req.params.snumber) next() }, function (req, re

我正试图让邮递员把一份有具体学生号的文件还给我。目前,如果学生编号的类型为Int,它不会返回任何内容,但如果我将其更改为String,它将按预期工作。正如你可能看到的那样,我最近才开始工作,所以请对我放松点

这里有一些代码

app.get("/students/:snumber", function (req, res, next) {
console.log('student number =', req.params.snumber)
next() },

function (req, res, next) {
var query = { student_number: req.params.snumber };

MongoClient.connect('mongodb://localhost:27017/uni', function (err, client) {
if (err) throw err
    var db = client.db('uni')
    db.collection('students').find(query).toArray(function (err, result) {
    if (err) throw err
console.log(result)
res.send(result)
})
})
});
{ “学生编号”:1, “名字”:“珍妮特”, “姓氏”:“Penddreth”, “电子邮件”:jpenddreth0@census.gov", “性别”:“女性” }

URL参数将始终设置为字符串,因此需要将
snumber
转换为整数,即

const query = { student_number: parseInt(req.params.snumber, 10) }
URL参数将始终设置为字符串,因此需要将
snumber
转换为整数,即

const query = { student_number: parseInt(req.params.snumber, 10) }

使用
Number(v)
parseInt(v,10)
转换值就足够了。 此外,如果要匹配这两种情况,可以将其包装在
$或
中,如:

const query={$or:[
{学生编号:req.params.snumber},
{学生编号:编号(请求参数snumber)},
] }

使用
Number(v)
parseInt(v,10)
转换值将是足够的。 此外,如果要匹配这两种情况,可以将其包装在
$或
中,如:

const query={$or:[
{学生编号:req.params.snumber},
{学生编号:编号(请求参数snumber)},
] }

你能提供示例代码和示例文档说明它如何存储在MongoDB中吗?@James添加了一些有帮助的东西你能提供示例代码和示例文档说明它如何存储在MongoDB中吗?@James添加了一些有帮助的东西,明白了。非常感谢。啊,明白了。非常感谢。