node.js - Mongoose 查找查询传递变量

标签 node.js mongodb mongoose mongoose-schema

希望大家一切都好。我是 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/

相关文章:

java - Spring-data-mongo 无法使用构造函数实例化 java.util.List

node.js - 如何在 Mongodb 聚合(组)中进行 $sum 和 $filter

mysql - 数据库是从 SQLyog 连接的,但不是从 Nodejs 连接的

java - 将 ObjectId 字段正确映射到 String

node.js - 如何使用 node.js 控制浏览器(ala Selenium)?

node.js - MongoDB - Mongoose : Aggregate generation, $match $group $project

node.js - 在 Sequelize 中预保存钩子(Hook)和实例方法?

node.js - 使用 Mongoose 保存身份验证凭据时出现问题

node.js - 如何迭代 Model.stream waterline 查询的每条记录?

Node.JS 将 eval 输出重定向到字符串