mongoose中更新数据数组中子集中的某条数据

 0 0条评论

数据列表如下:


"name": "测试问卷", "item": [ { "com": "checkBox", "label": "你不爱吃哪些水果泥", "options": { "list": [ "苹果", "香蕉", "草莓" ], "required": true }, "_id": "634e8ac85e2b3768d5c4e3bd" }, { "com": "radio", "label": "您的性别", "options": { "list": [ "男", "女" ], "required": true }, "_id": "634e8ac85e2b3768d5c4e3be" }]

需求很简单,想更新name为“测试问卷”的集合中,item数组中_id为634e8ac85e2b3768d5c4e3bd的值,仅仅是更新该子集,不更新文档其他字段。代码如下:

    updateItem(name: string, itemID: string, model: { label: string, options: object }) {
        return Model.updateOne({ name, item: { $elemMatch: { _id: itemID } } }, 
        { "item.$.label": model.label, "item.$.options": model.options },)
    }

其中name参数就是传递“测试问卷”,eleMathch关键是,就匹配item下的_id为itemID的数据。最后使用item.$关键,更新符合条件的子集内容。


本文作者:双黑

版权声明:本站文章欢迎链接分享,禁止全文转载!

游客