希望大家一切都好。我是 node.js 和 mongodb 的新手,并且在将变量传递给 mongoose 模型查询时遇到问题。
当我传递两个参数时,其结果为空,但记录存在。
Retrieving data from MongoDB Image
通过Postman发送Get请求
获取路线:/data/:vehicle_no/:drive_id
网址:http://localhost/api/data/ZXC-1123/drive_234
路线代码:
var reg_no = req.params.vehicle_no;
drive_id: req.params.drive_id;
vehicle.find({
ID: reg_no,
Trip_Details: {
FileName: drive_id
}
}, function(err, result) {
if(err) {
res.json(err);
} else if(result.length > 0) {
res.json("Drive id Found");
} else {
res.json("Drive id not Found");
}
})
结果:未找到驱动器 ID
但是预期结果必须是:找到驱动器 ID
在上面的代码中:Trip_Details 是具有 file_name、_id、TripData 的对象数组。
如果我只传递一个参数,例如 车辆.find({ ID: reg_no } 然后找到结果。
请帮忙, 提前致谢
最佳答案
如果要根据两个参数进行查询,还可以使用 $and 以获得更好的可读性。 出错的地方是在编写查询时,第二个参数应该写为:
vehicle.find({
ID: reg_no,
Trip_Details.FileName: drive_id
}
您使用 $and 的实现如下:-
vehicle.find({
$and: [
{ID: reg_no},
{Trip_Details.FileName: drive_id
}]
}, function(err, result) {
if(err) {
res.json(err);
} else if(result.length > 0) {
res.json("Drive id Found");
} else {
res.json("Drive id not Found");
}
})
欲了解更多信息,请参阅Mongoose Docs
关于node.js - Mongoose 查找查询传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46953328/