【发布时间】:2022-02-25 03:28:50
【问题描述】:
我正在使用 node.js 和 mongodb 我需要知道如何通过 API 请求读取某个集合 (day_07-07-2021 是要搜索的集合)
在我想查询集合 day07072021 的 Node.js 路由中,我想知道如何更改集合(动态)以使用通过 URL 接收的“req.param”查询路由。 所以在设置集合之后我会做 find();
每天都会有一个收藏。
http://localhost:3000/registry/windows2021/1101/day07072021
我的实际代码是(更新后:Selva Mary),但仍然无法正常工作。
logs.js
const express = require('express')
const router = express.Router()
const logs = require('../models/registry')
router.get('/:device/:rule/:bydate', async (req, res) => {
try {
let byDate = req.params.bydate +"info"
const logues = await db.collection(byDate).find({
'agent.name': req.params.device,
'rule.id': req.params.rule
}).sort({ 'id': -1 }).limit(15);
res.json(logues)
}
catch (err) {
res.status(500).json({ message: err.message })
}
})
server.js
require('dotenv').config()
const express = require('express')
const app = express()
const mongoose = require('mongoose')
const log = mongoose.set('debug', true)
mongoose.connect('mongodb://db:27017/datainfo', { useNewUrlParser: true,useUnifiedTopology: true })
const db = mongoose.connection
const registryRouter = require('./routes/registry')
app.use('/registry', registryRouter)
我希望它清楚。
我收到消息: {"message":"db 未定义"}
【问题讨论】:
-
你试过什么?哪个部分不起作用(获取参数?查询数据?更新数据?...等)?如果不查看您当前拥有的代码,很难提供帮助。
-
已编辑。对不起...
-
db.collection(mycoll).find(...)。变量mycoll是一个字符串变量,其值为“test_coll”——集合的名称。 -
我收到消息:{"message":"db is not defined"},我已经添加了关于这个问题的更多信息,如果你能帮忙的话。