0

我最近将一个稳定的工作应用程序从 Mongoose 5.11.14 迁移到 6.0.12。现在更新文档会破坏填充子文档数组的能力。当我直接在 MongoDB Atlas 中检查时,新更新的(损坏的)文档在它应该是Array时具有 BSON 类型Object。使用doc.Save()doc.Create()方法可以将记录正确保存到数据库中,但是当我使用任何更新方法(doc.updateOne()、doc.findOneAndUpdate()等)更新记录时,我的字段从 Array 更改为 Object 并且填充不再有效。

示例架构

const eventSchema = new mongoose.Schema({
  name: String,
  participants: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: participant
  }]
})

*请注意,参与者以 ObjectId 数组的形式提供。

总结一下我的问题:

为什么更新方法使用不正确的 BSON 类型的 Object 而不是 Array 将我的文档保存在 MongoDB Atlas 中,我该如何纠正这个问题?我想这与铸造有关。有人可以提供任何建议吗?

4

0 回答 0