簡體   English   中英

Mongoose 在 json 中查找並更新 json

[英]Mongoose find and update json in json

如果標題不清楚,我很抱歉我不知道還能怎么寫。

假設我有以下架構:

{
  name: {
    type: String
  },
  additionalInfo: {
    someInfo: {
      a: {
        type: String
      },
      b : {
        type: String
      }
    }
  }
}

現在說我想創建一個更改字段b和僅b的函數。

function changeB(id, newB) {
  return new Promise((resolve, reject) => {
    myModel.findByIdAndUpdate(id, { additionalInfo: { someInfo: { b } } }, (err, doc) => {
      if(err) reject(err);
      if(doc) resolve(doc);
      reject();
    });
  });
}

這里的問題是該函數會覆蓋該文檔的整個additionalInfo信息。 所以如果我也有a值,在運行該函數后它就會消失。 我該怎么做才能只更改additionalInfo.someInfo.b

實際上,在寫這個問題時(尤其是最后一句話),我自己想通了。 以下函數僅更改additionalInfo.someInfo.b而不刪除任何其他內容。

function changeB(id, newB) {
  return new Promise((resolve, reject) => {
    myModel.findByIdAndUpdate(id, { 'additionalInfo.someInfo.b': newB }, (err, doc) => {
      if(err) reject(err);
      if(doc) resolve(doc);
      reject();
    });
  });
}

暫無
暫無

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

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