【问题标题】:Define MongoDB Collection in REST API GET Request在 REST API GET 请求中定义 MongoDB 集合
【发布时间】:2018-01-03 00:29:29
【问题描述】:

我在同一个 MongoDB 数据库中存储了 2 个单独的集合中的数据。有没有办法在 HTTP GET 请求查询字符串中定义应该从哪个集合中检索数据。 我使用下面的 JS 来处理查询:

const findDocuments = function(db, callback) {
const collection = db.collection('THIS should come from the query string');
collection.find(query).toArray(function(err, docs) {
  assert.equal(err, null);
  callback(docs);   
});
  };
};

应用程序是在 Node.js 中使用 express 设置的

dataRouter.route('/data')
.post(function(req, res){
    var query =req.query;
    //console.log(query);

    getResult(query, function(data){
        console.log('query done');
        //console.log(data);
        res.json(data);
    });
    module.exports = {
        query: query
    };
});

app.use('/api', dataRouter);

【问题讨论】:

    标签: node.js mongodb rest http express


    【解决方案1】:

    在您分享的示例中,您声明的是 POST 方法,而不是 GET。 无论如何,在 GET 方法中,您可以发送一个查询参数来标识您要使用的集合。 图片你发送一个名为 collection 的查询参数

    http://myhost/data?collection=1
    

    您可以使用以下方法提取该查询参数:

    var numberCollection = req.query.collection;
    

    【讨论】:

    • 嗨,谢谢,我现在开始工作了。 var query =req.query 实际上已经被用于查询目前硬编码的集合。但是现在我已经构建了一个数组query.push(req.query.variable, req.query.coll);,现在可以使用了