원시 mongodb 드라이버를 사용하여 노드 JS에서 명령을 작성하여 문서 객체 안에있는 객체에서 키 값 쌍을 제거하려고합니다.MongoDB 노드 JS - 문서 객체 내부의 객체에서 항목을 삭제하는 중
{
"name" : "PrakashPM"
"data" : {
"Jan-2017" : "2,3,1",
"Dec-2016" : "1,2,0",
"Nov-2016" : "9,9,9"
}
},
{
"name" : "Valavan"
"data" : {
"Jan-2017" : "1,1,1",
"Dec-2016" : "3,3,3",
"Nov-2016" : "9,9,9"
}
}
내 목표는 "12 월 2016"을 제거하는 것입니다 :
나는 다음과 같은 형식으로 MongoDB를 수집있다 "1,2,0" "이름이"내부 인 : " PrakashPM "
내 코드 :
var mongoName = 'PrakashPM';
var mongoDate = "'data'.'Dec-2016'";
// TRIALS
// var mongoDate = "data.'Dec-2016'";
// var mongoDate = "data.Dec-2016";
var mongoVal = "'1,2,0'";
// TRIALS
// var mongoVal = "1,2,0";
mycollection.update({ name: mongoName },
{ $unset: {mongoDate : mongoVal} }
);
참고 : 나는 위의 오페라를하고 있어요 PUT 요청 기능 내부.
입력 값 (mongoDate, mongoVal)에 대해 여러 가지 가능한 방법 (시도)을 시도했지만 아래 결과를 얻을 수 없습니다.
또한 키를 사용하여 키 값 쌍 항목을 제거 할 수 있습니까? (즉,이 경우 {$ 해제 : {mongoDate}}에서 같은 또는 무언가)
예상 결과 :
{
"name" : "PrakashPM"
"data" : {
"Jan-2017" : "2,3,1",
"Nov-2016" : "9,9,9"
}
},
{
"name" : "Valavan"
"data" : {
"Jan-2017" : "1,1,1",
"Dec-2016" : "3,3,3",
"Nov-2016" : "9,9,9"
}
}
'req.body' 콘텐츠 샘플을 더 제공 할 수 있습니까? 특히'req.body.timerData'와'req.body.time'의 차이는 무엇입니까? 또한 당신의 코드에서'timerName'은 무엇입니까? –
모든 혼란을 드려 죄송합니다. @SantanuBiswas 나는 적절한 값으로 질문을 편집했다. 'find ({name : mongoName}) '를 사용하여 레코드를 검색 할 수 있습니다; 문제는 $ unset 조건이거나 첫 번째 인수에서 추가 쿼리 일 수 있습니다. – Mikki
아래 내 답장을 참조하십시오. 문제를 파악하고 해결책을 제시했습니다. –