簡體   English   中英

MongoDB,貓鼬,更新數組內的對象

[英]MongoDB, mongoose, update object inside array

我有以下MongoDB模型:

const Relation = mongoose.model('Relation',{
  name :{
    type: String,
  },

  port:{
    type: Number,
  }, 
  services: { type : Array , "default" : [] }
});

每個端口是每個文檔的唯一編號。 集合可以具有以下值:

{
 "port":"116", //unique number
 "name":"xzy",
 services: [
        {"id":'1', "trust":"good"},
        {"id":'2', "trust":"bad"},
  ]
}

例如,如何使“ id” = 1的對象的“ trust”值“ bad”?

我假設我應該首先找到與端口號“ 116”匹配的集合,然后在“ id”為1的Services數組中找到對象。如何在貓鼬中做到這一點?

您可以使用$位置運算符來更新數組內的值

Relation.findOneAndUpdate(
  { "port": "116", "services.id": "1" },
  { "$set": { "services.$.trust": "bad" }}
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM