我有一个这样的用户模型

{
     _id:"something",
     email:"abc@gmail.com",
     contacts:[
     {_id:"123",status:"PENDING"},
     {_id:"456",status:"PENDING"},
     {_id:"789",status:"PENDING"}
     ]
}

我有一个用户联系人"123"的id,我想将特定联系人的状态从"待定"更新为"成功".我该怎么做?

推荐答案

最简单的方法是使用数组标识符$,如下所示:

db.collection.updateOne({
  email: "abc@gmail.com",
  "contacts._id": "123"
},
{
  "$set": {
    "contacts.$.status": "SUCCESSFUL"
  }
})

Mongo Playground

数组标识符更新与查询匹配的数组的第一个元素.

Javascript相关问答推荐

类型脚本中只有字符串或数字键而不是符号键的对象

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

如何使用JavaScript将文本插入空div

空的结果抓取网站与Fetch和Cheerio

使用JQuery单击元素从新弹出窗口获取值

闭包是将值复制到内存的另一个位置吗?

覆盖加载器页面避免对页面上的元素进行操作

如何在箭头函数中引入or子句?

在不删除代码的情况下禁用Java弹出功能WordPress

传递方法VS泛型对象VS事件特定对象

WebSocketException:远程方在未完成关闭握手的情况下关闭了WebSocket连接.&#三十九岁;

Phaser3 preFX addGlow不支持zoom

不协调嵌入图片

为什么我不能使用其同级元素调用和更新子元素?

表单数据中未定义的数组键

如何在Highlihte.js代码区旁边添加行号?

找不到处于状态的联系人

如何在单击Search按钮时更新Reaction组件?

如何将.jsx转换为.tsx

获取S点击的元素类(这?)并将其应用于另一个元素(目标),同时删除目标元素上的所有类