Ketika objek tertentu dihapus, saya perlu menggunakan pemicu afterDelete
untuk menghapus referensi ke objek yang baru saja dihapus. Secara khusus, kelas Pengguna memiliki kolom yang merupakan penunjuk ke objek bertipe yang baru saja dihapus. Oleh karena itu saya perlu menghapus kolom itu untuk pengguna yang menyetelnya ke objek yang baru saja dihapus. Untuk melakukan ini, saya menanyakan pengguna, mengulang hasil kueri, unset
ing atributnya, lalu memanggil saveAll
. Kekhawatiran saya adalah hasil kueri mungkin menampilkan banyak pengguna, dan saya perlu memastikan semuanya diperbarui.
Pertanyaan saya adalah, apakah pemicu Cloud Code memiliki batas maksimal 1000 kueri? Apakah ada cara yang lebih baik untuk membatalkan penunjuk ini setelah objek itu dihapus? Apakah tidak ada penghapusan otomatis pointer ke objek yang dihapus ini?
Parse.Cloud.afterDelete("Book", function(request) {
Parse.Cloud.useMasterKey();
var book = request.object;
var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("Favorite_Book", book);
userQuery.limit(1000);
userQuery.find( {
success:function(users){
for (var i = 0; i < users.length; i++) {
users[i].unset("Favorite_Book");
}
Parse.Object.saveAll(users, {
success: function(users) {},
error: function(users, error) {
console.error("Failed to update users: " + error.code + ": " + error.message);
}
});
}, error: function(error) {
console.error("Failed to fetch users: " + error.code + ": " + error.message);
}
});
});