当我传递两个参数时,其结果为空,但记录存在。
Retrieving data from MongoDB Image
通过邮递员发送请求
获取路线:/ 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的对象数组。
如果我只传递一个参数,如: vehicle.find({ID:reg_no} 然后找到了结果。
请帮助, 在此先感谢
答案 0 :(得分:-1)
要基于两个参数进行查询,您还可以使用$并获得更好的可读性。 你出错的地方是写作查询,第二个参数应写成:
vehicle.find({
ID: reg_no,
Trip_Details.FileName: drive_id
}
使用$的实现方式如下: -
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