繁体   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