0
npm 패키지 mongojs를 사용하여 변수를 사용하여 중첩 된 객체에 액세스해야합니다. 다음은, 그러나, 작동하지 않습니다변수를 사용하여 MongoDB 중첩 객체에 액세스
let userID = req.user._id,
marketName = req.body.marketName,
itemName = req.body.item.itemName,
crossOff = req.body.item.isCrossed;
markets.updateOne(
{
_id: userID,
"marketList.marketName": marketName
},
{$set : {`marketList.$.shoppingList.${itemName}.isCrossed`: crossOff}},
(err, doc) => {
if(err) { res.status(400).send('Bad Request') }
else { res.status(204) }
res.end();
});
});
이 상황에 따라서 unexpected template string
오류 템플릿 문자열을 사용할 수 없기 때문에.
변수를 키로 사용하는 대괄호 표기법을 사용할 수 있다는 것을 알고 있지만 문자열에 저장된 전체 키로 변수를 설정할 수 없으므로 상황에 도움이되지 않습니다. .
{
_id: ObjectId(...),
marketList: [
{ marketName: 'ralphs',
shoppingList: {
"cookies": { itemName: "cookies", isCrossed: false },
"moar cookies": { itemName: "moar cookies", isCrossed: true }
},
{
marketName: 'gelsons',
shoppingList: {
"even moar cookies": { itemName: "even moar cookies", isCrossed: true }
}
}
]
}
내 옵션은 무엇입니까 :
하기 위해 여기에 샘플 문서 구조인가?
왜 그냥 객체를 생성하고 키 괄호를 사용할 수없는 사용할 수 있습니다? 템플릿 문자열은 문법적 설탕 일 뿐이며, 사용할 수 있다면 객체를 사용할 수 있습니다. – adeneo
@adeneo 나는 marketName의 위치가 무엇인지 미리 알지 못합니다. 그렇지 않으면 간단하게 괄호 표기법을 사용합니다. – Shadow
-> https://jsfiddle.net/adeneo/j7tc7muL/1/ – adeneo