>

이 mongodb 모델이 있습니다 :

 let businessLineDashboardRow = new Schema({
    ref: {
      type: String
    },
    riskstatements: {
      type: String
    },
    maximpact: {
      type: String
    },
    controleffectiveness: {
      type: String
    },
    recommendedriskrating: {
      type: String
    },
    frequency: {
      type: String
    },
    impact: {
      type: String
    },
    validatedreviewriskrating: {
      type: String
    },
    rationalforriskadjustment: {
      type: String
    }
  })

간단한 문서 삽입으로 시작했습니다 :

db.businesslinedashboards.find()

{ 
  "_id" : ObjectId("5d10a0a6df45c71a6c9dab26"), 
  "ref" : "R13", "riskstatements" : "blablablablablabla", 
  "maximpact" : "I AM TRYING TO CHANGE THIS VALUE", 
  "controleffectiveness" : "blablablablablabla", 
  "recommendedriskrating" : "blablablablablabla", 
  "frequency" : "blablablablablabla", 
  "impact" : "blablablablablabla", 
  "validatedreviewriskrating" : "blablablablablabla", 
  "rationalforriskadjustment" : "blablablablablabla", "__v" : 0 
}

알다시피, 다음 코드로 maximpact의 값을 변경하려고합니다.

BusinessLineDashboard.findOne({
        ref: 'R13'
    }, (err, rowData) => {
        if (err)
            console.log(err);
        else {
            rowData.maximpact = 'THE DATA GETS STORED IN THE DB SUCCESFULLY'
            console.log('rowData: ', rowData.maximpact);
            //In the console: rowData:  THE DATA GETS STORED IN THE DB SUCCESFULLY
        }
 });

그래서 효과가있었습니다. 그러나 테이블 데이터를 검색하기 위해 두 번째 쿼리를 보냈을 때 아무런 변화가 없음을 발견했습니다.

function getTableData(dbtable, callback) {
    dbtable.find((err, tableData) => {
        if (err)
            console.log(err);
        else {
            callback(tableData)
        }
    }).then((tableData) => {});
}
getTableData(BusinessLineDashboard, (BLDtable) => {
        BLDtable.forEach(rowData => {
            if(rowData.ref==='R13'){
                console.log('BLDrow: ', rowData.maximpact);
                //In the console: BLDrow:  I AM TRYING TO CHANGE THIS VALUE
            }
        })
})

실제로 아무것도 바뀌지 않았습니다. JS의 비동기 특성과 관련이 있다고 생각합니다.
왜 이런 일이 일어나고 있고 어떻게 고칠 수 있을까요?
감사합니다 !!

  • 답변 # 1

    ref : 'R13'에 해당하는 BusinessLineDashboard 테이블에서 maximpact를 업데이트해야합니다. 업데이트하지 않고 어떻게 값을 변경할 수 있습니까?

    BusinessLineDashboard.update ({ref : 'R13'}, {maximpact : 'DB에 성공적으로 저장된 데이터 놈'})

관련 자료

  • 이전 javascript - localStorage로 저장할 수없는 컨텐츠 편집 가능
  • 다음 css : Ant-Design 'Select'구성 요소의 스타일을 변경하는 방법은 무엇입니까?