node.js - วิธีตั้งค่าแบบแผนการออกแบบสำหรับผู้ใช้ที่มีการแจ้งเตือนใน MongoDB
ฉันกำลังทำงานในการสร้างความสัมพันธ์ระหว่างผู้ใช้และการแจ้งเตือนในแอปของฉัน แต่ละผู้ใช้มีการแจ้งเตือนหลายรายการ และการแจ้งเตือนหนึ่งสามารถมีผู้ใช้หลายคนได้ ขณะนี้ฉันกำลังเก็บอาร์เรย์ของ ID ผู้ใช้ในเอกสารการแจ้งเตือน และอาร์เรย์ของวัตถุที่ประกอบด้วย ID การแจ้งเตือนพร้อมกับแฟล็กแบบบูลีนที่ระบุว่าถูกอ่านหรือไม่ในเอกสารผู้ใช้ ข้อกำหนดของฉันมีดังนี้:
- ฉันควรจะสามารถสอบถามการแจ้งเตือนทั้งหมดของผู้ใช้ได้ สิ่งนี้สามารถทำได้ผ่านการแบ่งหน้าข้อมูล
การแจ้งเตือนจะถูกบันทึกทั้งในฐานข้อมูลและเผยแพร่ไปยังช่องสัญญาณเฉพาะสำหรับผู้ใช้แต่ละคนผ่าน Redis Pub/Sub ซึ่งใช้ร่วมกับการสมัครสมาชิก GraphQL ทำให้ผู้ใช้สามารถรับการแจ้งเตือนแบบเรียลไทม์ภายในแอปได้
ฉันจำเป็นต้องสามารถส่งอีเมลสรุปรายวันไปยังผู้ใช้ทั้งหมด โดยพื้นฐานแล้ว สิ่งนี้เกี่ยวข้องกับการดึงข้อมูลผู้ใช้ทั้งหมดพร้อมกับการแจ้งเตือนที่ยังไม่ได้อ่านของพวกเขา และวิเคราะห์การแจ้งเตือนของผู้ใช้แต่ละคนเพื่อสร้างแม่แบบอีเมล HTML จากนั้นอัปเดตค่าธงบูลีนจากยังไม่ได้อ่านเป็นอ่านแล้ว
คำถามของฉันคือ:
วิธีที่ดีที่สุดในการจัดการการสอบถามผู้ใช้ทั้งหมดและการแจ้งเตือนของพวกเขาคืออะไร? ฉันสมมติว่าฉันควรประมวลผลผู้ใช้เป็นชุด ๆ
นี่เป็นวิธีที่เหมาะสมในการจัดเรียงสคีมาหรือไม่? ในที่สุดฉันก็จะต้องรับมือกับเอกสารผู้ใช้ที่เติบโตใหญ่เกินไปเพราะขนาดของอาเรย์ อาเรย์ในเอกสารผู้ใช้สามารถเติบโตใหญ่ได้แค่ไหนก่อนที่ฉันจะเข้าใกล้ขีดจำกัด?