[英]NodeJS and mongoDB - mongoose
我正在尝试操作不是由我创建的 JSON,仅上传到 mongo。 在 NodeJs 中,我正在尝试:
app.get('/municipios', async (req, res) => {
let cidadeSchema = new Schema({}, { strict: false })
let cidades = mongoose.model('municipios', cidadeSchema)
let cidade = cidades.findOne({name: 'Rio Grande'})
// console.log(cidade)
res.send(CircularJSON.stringify(cidade))
})
但是当发送 JSON 时,它只向 mongo 发送请求的结构,如果我尝试一次,我会收到一条消息: (node:24536) UnhandledPromiseRejectionWarning: OverwriteModelError: Cannot overwrite municipios
model 一旦编译。
当您在异步方法中编写查询时,您需要等待 findOne 查询的结果。 以下是答案片段
app.get('/municipios', async (req, res) => {
let cidadeSchema = new Schema({}, { strict: false })
let cidades = mongoose.model('municipios', cidadeSchema)
let cidade = await cidades.findOne({name: 'Rio Grande'})
// convert the dataset into object
cidade = cidade.toObject();
res.send(cidade)
})
等待之后,您将获得 model 数据,您可以将其转换为 object。
提交的等待答案注意到一个问题,您还需要修复它,但它没有回答您原来的 OverwriteModelError 问题。
我认为您正在定义您的 model 架构两次。
这篇文章中接受的答案对将模型与其他代码分开定义有很好的解释,它应该可以帮助您解决问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.