我正在尝试使用 MongoDB 构建一个项目,该项目跟踪客户数据并允许用户根据需要更新该数据。
在我的 Mongoose Schema 中,我有一个名为“customerNotes”的属性,如下所示:
customerNotes: [
{
id:String,
text:String,
completed: Boolean,
}
]
我希望最终产品是具有多个记录笔记的单个属性(这就是为什么每个笔记都有自己的 ID、文本以及任务是否已完成的原因)
目前,当我使用 Postman 测试我的模式时,每次我写入 API 端点时,我之前写入的数据都会被覆盖。
有没有一种方法可以改进我的 Mongoose Schema,以便在将其他数据写入端点时,不会删除之前写入的内容,而是将新数据添加到 customerNotes 数组中,而无需创建全新的客户?
我唯一想到的一个可能的解决方案是改变前端发送和接收数据的方式,但如果我能在 Schema 中完成这个,这会更有效率。
模式定义了字段的类型,但没有定义允许的操作。
如果模式指定
customerNotes
是一个对象数组,则预计客户端可以在该字段上执行多个操作:
模式的工作不是决定哪些操作有效,哪些应该被禁止。
您可以实现中间件逻辑来拦截一种类型的操作,例如替换整个数组,并将其更改为追加或合并操作。