【问题标题】:Mongoose Version Error and no matching document found for idMongoose 版本错误,找不到与 id 匹配的文档
【发布时间】:2018-02-27 02:44:36
【问题描述】:

我有一个猫鼬模式,我只是在原始模式中添加了“imagens”字段。

添加的字段是:

imagens:[{title:{type: String},savedAs:{type: String},file:{type: String}, thumb:{type: String}}],

现在,当我尝试填写“imagens”字段并更新集合时,出现下一个错误。 如果我摆脱'item.imagens = imgs'行,错误就消失了。

我做错了什么?有没有办法解决这个问题?

//错误

     {"data":{"message":"No matching document found for id \"5909caeed32a453b537f7966\"",
"name":"VersionError"},    "status":500,
        "config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback",
    "url":"/uploads",
    "data":{"file":{"$ngfBlobUrl":
    "blob:http://localhost/9c4b0449-1ddd-4e39-ab44-f2e9a21bfd82","$ngfWidth":450,"$ngfHeight":321,
    "upload":{},"progress":100},"pacID":"5909caeed32a453b537f7966"},"_isDigested":true,
    "_chunkSize":null,"headers":{"Accept":"application/json, text/plain, */*"},"_deferred":{"promise":"..."},"cached":false},"statusText":"Internal Server Error"}

//在我的路由器中

Cliente.findById(pac_id, function (err, item) {  
                                    if (err) {
                                        return res.status(500).send(err);
                                    } else {
                                       item.imagens=imgs
                                    }
                                    item.save(function (err, data) {
                                      if (err) {
                                            return res.status(500).send(err)
                                      }
                                      if (answers.results.length){
                                            answers.message='Some files was not uploaded'
                                      } else {
                                            answers.message='Files were uploaded'
                                      }
                                      res.send(answers)  
                                   })
                                  })

//模型

const mongoose=require('mongoose');
const clientesSchema = new mongoose.Schema({
  id: {type: Number, unique:true},
  nome: {type: String, unique:true},
  ativo: {type: Boolean},
  ...
  ...  
  foto: { data: Buffer, contentType: String },
  imagens:[{title:{type: String},savedAs:{type: String},file:{type: String}, thumb:{type: String}}],
  created_at:{type:Date,default:Date.now},
  altered_at:{type:Date,default:Date.now}
});


module.exports = mongoose.model('Cliente', clientesSchema,'clientes' );

【问题讨论】:

标签: node.js mongoose


【解决方案1】:

删除文档版本,这将解决版本冲突。 然后 Mongoose 将允许您保存:

delete item.__v
item.save(...)

【讨论】:

  • 谢谢杰里米,但我试过了,问题仍然存在。这很奇怪,因为如果我只将一张图像放入我的“imagens”数组中,问题就不会出现。如果我将两个或更多图像项放入字段数组中,则会出现问题显示
  • 谢谢,原来如此。我犯了一个错误。
  • 这是否有任何不可预见的危险后果?将其永久保留在代码中可以吗?
猜你喜欢
  • 2017-12-26
  • 2013-07-04
  • 2019-07-14
  • 2018-05-12
  • 1970-01-01
  • 2017-11-03
  • 2020-08-14
  • 2018-06-27
  • 1970-01-01
相关资源
最近更新 更多