如何通过防止 JSON 覆盖来改进 MongoDB Schema?

问题描述 投票:0回答:1

我正在尝试使用 MongoDB 构建一个项目,该项目跟踪客户数据并允许用户根据需要更新该数据。

在我的 Mongoose Schema 中,我有一个名为“customerNotes”的属性,如下所示:

customerNotes: [
    {
        id:String,
        text:String,
        completed: Boolean,

    }
]

我希望最终产品是具有多个记录笔记的单个属性(这就是为什么每个笔记都有自己的 ID、文本以及任务是否已完成的原因)

目前,当我使用 Postman 测试我的模式时,每次我写入 API 端点时,我之前写入的数据都会被覆盖。

有没有一种方法可以改进我的 Mongoose Schema,以便在将其他数据写入端点时,不会删除之前写入的内容,而是将新数据添加到 customerNotes 数组中,而无需创建全新的客户?

我唯一想到的一个可能的解决方案是改变前端发送和接收数据的方式,但如果我能在 Schema 中完成这个,这会更有效率。

javascript json mongodb postman mongoose-schema
1个回答
0
投票

模式定义了字段的类型,但没有定义允许的操作。

如果模式指定

customerNotes
是一个对象数组,则预计客户端可以在该字段上执行多个操作:

  • 在数组末尾添加一个对象
  • 在数组中的特定点添加一个对象
  • remove 从数组中移除所有、部分或一个对象
  • 修改数组中的全部、部分或其中一个对象
  • 替换数组中的所有、部分或一个对象
  • 将新数组合并到现有数组中
  • 用新数组替换整个数组

模式的工作不是决定哪些操作有效,哪些应该被禁止。

您可以实现中间件逻辑来拦截一种类型的操作,例如替换整个数组,并将其更改为追加或合并操作。

© www.soinside.com 2019 - 2024. All rights reserved.