반응형
JSON.parse()
developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성하는 메소드
'{"result":true, "count":42}' -----> {"result":true, "count":42}
(String(object)로 묶인 json형태의 object에서 String을 벗겨?내주고 json 객체로 만들어준다.)
실무에서 어떻게 사용하는지 보자.
다음과 같이 ``를 활용하여 필드를 동적으로 생성하고 싶을 때
property key 로 넣었을 때 에러가 발생한다.
const setQ = { $set: { `info.stock.${param.stock}` : param.quantity} } (x)
따라서 object 전체 { `info.stock.${param.stock}` : param.quantity} 를
식별자에 담아 그 식별자를 변수를 활용하는데
이때 String으로 묶인 json Object를 JSON.parse()를 활용하여 json 형태의 object로 바꿔준다.
const jsonString = `{ "info.stock.${param.stock}" : param.quantity} `;
const objJson = JSON.parse(jsonString);
전체 코드
async addStock(param) {
const homeInfo = await mongo.dbSetting();
const filterQ = {keyword:param.keyword};
const stock = param.stock;
const quantity = param.quantity;
const jsonString = `{"info.stock.${stock}" : ${quantity}}`;
const objJson = JSON.parse(jsonString);
const setQ = { $set: objJson }
const updateOneResult = await homeInfo.updateOne(filterQ, setQ);
return response.UpdateOneResponse(updateOneResult)
}
반응형
'IT > MongoDB' 카테고리의 다른 글
$eq 와 $ne (Operatros/Query and Projection Operators/Comparision Query Operators) (0) | 2021.04.12 |
---|---|
$unset (Field Update Operators) (0) | 2021.04.12 |
몽고디비 - findOneAndUpdate (0) | 2020.06.13 |
MONGODB - aggregate (0) | 2020.06.13 |
MONGODB - find (0) | 2020.06.13 |