Node.js Mongoose查找传递变量的查询

Node.js Mongoose查找传递变量的查询,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,每个人都希望一切都好。我不熟悉node.js和mongodb,在将变量传递到mongoose模型查询时遇到问题 当我传递两个参数时,它的结果是空的,但是记录存在 通过邮递员发送Get请求 获取路线:/data/:vehicle\u no/:drive\u id URL: 路线代码: var reg_no = req.params.vehicle_no; drive_id: req.params.drive_id; vehicle.find({ ID: reg_no,

每个人都希望一切都好。我不熟悉node.js和mongodb,在将变量传递到mongoose模型查询时遇到问题

当我传递两个参数时,它的结果是空的,但是记录存在

通过邮递员发送Get请求

获取路线:/data/:vehicle\u no/:drive\u id

URL

路线代码:

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是具有文件名、id和TripData的对象数组

如果我只通过一个类似的论点 vehicle.find({ID:regu 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");
    }
})

有关更多信息,请参考您应该使用
“Trip\u Details.FileName”:drive\u id
而不是
“Trip\u Details:{FileName:drive\u id}
所以试试
vehicle.find({id:reg\u no,“Trip\u Details.FileName”:drive\u id},函数(err,result){/..})
谢谢@ShaishabRoy,这在手册中起了作用,特别是“下面的示例检索库存集合中状态为“A”且数量小于($lt)30:
db.inventory.find({status:“A”,qty:{$lt:30}})的所有文档。
。因此,就像任何实际使用该产品而不只是“google”的人一样,您很快就会发现两者完全相同。
$和
没有在此处添加任何新内容。