无法将参数传递给mongo查找集合

时间:2016-04-29 15:31:18

标签: javascript node.js mongodb node-mongodb-native

在db.collection.find执行后,Req.params获取值。有人可以告诉我这段代码我做错了吗?

exports.findAll = function(req, res) {
    var postal = parseInt(req.params.postal);
    db.collection('ifscdata', function(err, collection) {
        collection.find({'ADDRESS':/postal/}).toArray(function(err, items) {
            res.send(items);
        });
    });

我应该根据邮政对地址进行部分搜索。但我无法将价值传递给邮政,因为它只是在之后才获得价值。

功能路线就是这个

app.get('/ifsc/:postal', ifsc.findAll);

示例网址:

  

http://localhost:3000/ifsc/691009

2 个答案:

答案 0 :(得分:0)

为什么要在postal之间添加斜杠?

你试过这个吗?

exports.findAll = function(req, res) {
    var postal = parseInt(req.params.postal);
    db.collection('ifscdata', function(err, collection) {
        collection.find({'ADDRESS': postal}).toArray(function(err, items) {
            res.send(items);
        });
    });

答案 1 :(得分:0)

看起来您需要在查询中使用正则表达式,考虑使用RegExp对象包装变量,如下所示:

exports.findAll = function(req, res) {
    var postal = req.params.postal, 
        regex = new RegExp(postal);

    db.collection('ifscdata', function(err, collection) {
        collection.find({'ADDRESS': regex}).toArray(function(err, items) {
            res.send(items);
        });
    });