javascript - Nodejs mongodb 动态集合名称
问题描述
我有几个 mongodb 集合,
Fruits: [ {}, {}, {} ...],
Bread: [{}, {}, {} ...]
我想在我的服务器中使用动态集合名称,例如
// :collection will be "Fruits" or "Bread"
app.get('/fetch/:collection', function (req, res){
[req.params.collection].find({}, function(err, docs){
res.json(docs)
})
})
但如您所知,[req.params.collection].find()...
它不起作用。如何使用动态集合名称?
解决方案
您可以使用不同的集合使用 db.collection('name').find({})
这是我尝试过
App.js的代码
const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require("mongodb").MongoClient;
const assert = require('assert');
const url = 'mongodb://localhost:27017';
var db;
MongoClient.connect(url, { useNewUrlParser: true }, function (err, client) {
assert.equal(null, err);
console.log("Connected successfully to DB");
db = client.db('name of the db');
});
var app=express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.get('/test/:collection', function(req,res){
let collection = req.params.collection;
console.log(collection);
db.collection(collection).find({}).toArray( function (err, result) {
res.send(result);
});
});
var port = 8000
app.listen(port, '0.0.0.0', () => {
console.log('Service running on port ' + port);
});
希望这可以帮助
推荐阅读
- parameters - 在 Tableau 中使用条形图作为参数筛选器
- c# - 哈希密码失败
- anova - 使用 mgcv gam 的负二项式混合模型中固定效应的重要性
- ios - 使用 OAuth2.0 为 iOS 应用中的多个目标配置 SSO
- php - 检测文件是否是 PHP 中没有 mime 类型的音频文件
- bash - 我想剪切所有文件名
- spring-webflux - 如何自定义 Spring webflux 错误页面
- javascript - 以不同的高度排列 div 一个在另一个之下(超级菜单)
- angular - The type 'void' can not be assigned to the type 'ObservableInput
' - c++ - 在C++中将双变量写入二进制文件