[英]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.