เมื่อลบออบเจ็กต์ใดโดยเฉพาะ ฉันต้องใช้ทริกเกอร์ afterDelete
เพื่อลบการอ้างอิงไปยังออบเจ็กต์ที่เพิ่งถูกลบ โดยเฉพาะคลาส User มีคอลัมน์ที่เป็นตัวชี้ไปยังวัตถุประเภทที่เพิ่งถูกลบ ดังนั้นฉันจึงต้องยกเลิกการตั้งค่าคอลัมน์นั้นสำหรับผู้ใช้ที่ตั้งค่านั้นเป็นวัตถุที่เพิ่งถูกลบ เมื่อต้องการทำสิ่งนี้ ฉันกำลังสอบถามผู้ใช้ โดยวนซ้ำผลลัพธ์ของการสืบค้น unset
ing แอ็ตทริบิวต์ จากนั้นจึงเรียก saveAll
ความกังวลของฉันคือผลลัพธ์ของการค้นหาอาจส่งคืนผู้ใช้จำนวนมาก และฉันต้องแน่ใจว่าผู้ใช้ทั้งหมดได้รับการอัปเดต
คำถามของฉันคือทริกเกอร์ Cloud Code มีขีดจำกัดการค้นหาสูงสุด 1,000 รายการหรือไม่ มีวิธีที่ดีกว่าในการยกเลิกการตั้งค่าตัวชี้นี้เมื่อวัตถุนั้นถูกลบหรือไม่? ไม่มีการลบพอยน์เตอร์ไปยังวัตถุที่ถูกลบนี้โดยอัตโนมัติหรือไม่
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);
}
});
});