0
안녕하세요. 일부 사용자 레코드가있는 문서가 있습니다.MongoDB가 잘못된 배열 요소를 업데이트합니다.
"profile":{
"records":[
{
"classId": "LngdsQfL",
"moduleId": "5CDEezDJ",
"sectionId": "nFMu3mwa",
"dateFinished": "",
"dateOpened": "2017-11-15T19:48:20.819Z"
},
{
"classId": "7Smq5sG",
"moduleId": "5CDEezDJ",
"sectionId": "nFMu3mwa",
"dateFinished": "",
"dateOpened": "2017-11-15T19:19:08.669Z"
}
]
}
그러나 두 번째 레코드를 업데이트하려고하면 첫 번째 쿼리가 업데이트됩니다. 그리고 두 번째 것은 똑같이 유지됩니다.
var classId= "7Smq5sG";
var moduleId = "5CDEezDJ";
var sectionId = "nFMu3mwa";
var date = new Date();
Users.update(
{ _id:Meteor.userId() ,
'profile.records.classId' : classId,
'profile.records.moduleId' : moduleId,
'profile.records.sectionId' : sectionId,
},{
$set : {
"profile.records.$.dateOpened": date
}
});
}
무엇이 누락 되었습니까?
첫 번째 레코드를 업데이트한다고 어떻게 알 수 있습니까? 'Meteor.userId()'란 무엇입니까? –
Meteor js를 사용 중이며 Meteor.userId()는 현재 사용자의 ID를 반환합니다. 데이터베이스를 검사 할 때 첫 번째 레코드가 업데이트 된 것을 볼 수 있습니다. – dionysosz
MongoDB v3.6을 사용하면 다음 시간 내에 문자 그대로 릴리스됩니다. – dnickless