Tôi có một bảng khảo sát trông giống như vậy:RethinkDB - Cập nhật lồng nhau mảng
{
id: Id,
date: Date,
clients: [{
client_id: Id,
contacts: [{
contact_id: Id,
score: Number,
feedback: String,
email: String
}]
}]
}
tôi cần phải cập nhật các lĩnh vực score
và feedback
dưới một số liên lạc cụ thể. Hiện nay, tôi đang chạy bản cập nhật như thế này:
function saveScore(obj){
var dfd = q.defer();
var survey = surveys.get(obj.survey_id);
survey
.pluck({ clients: 'contacts' })
.run()
.then(results => {
results.clients.forEach((item, outerIndex) => {
item.contacts.forEach((item, index, array) => {
if(Number(item.contact_id) === Number(obj.contact_id)) {
array[index].score = obj.score;
console.log(outerIndex, index);
}
});
});
return survey.update(results).run()
})
.then(results => dfd.resolve(results))
.catch(err => dfd.resolve(err));
return dfd.promise;
};
Khi tôi nhìn vào phương pháp update, nó xác định làm thế nào để cập nhật quan trọng lồng nhau: các cặp giá trị. Tuy nhiên, tôi không thể tìm thấy bất kỳ ví dụ nào để cập nhật một mục riêng lẻ trong một mảng.
Có cách nào tốt hơn và hy vọng là sạch hơn để cập nhật các mục trong một mảng lồng nhau không?