繁体   English   中英

NodeJS 和 mongoDB - mongoose

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM