8
วิธีในการปรับใช้ data versioning ใน MongoDB
คุณสามารถแบ่งปันความคิดของคุณได้อย่างไรว่าคุณจะใช้การปรับรุ่นข้อมูลใน MongoDB อย่างไร (ฉันได้ถามคำถามที่คล้ายกันเกี่ยวกับคาสซานดราถ้าคุณมีความคิดใดที่ดีกว่าสำหรับที่กรุณาแบ่งปัน) สมมติว่าฉันต้องการบันทึกเวอร์ชันในสมุดที่อยู่ธรรมดา (บันทึกสมุดที่อยู่จะถูกจัดเก็บเป็นวัตถุแบบ json แบบแบน) ฉันคาดหวังว่าประวัติศาสตร์: จะถูกใช้ไม่บ่อยนัก จะถูกใช้ทั้งหมดในครั้งเดียวเพื่อนำเสนอในแบบ "ไทม์แมชชีน" จะไม่มีรุ่นมากกว่าสองสามร้อยเป็นระเบียนเดียว ประวัติจะไม่หมดอายุ ฉันกำลังพิจารณาแนวทางต่อไปนี้: สร้างการรวบรวมวัตถุใหม่เพื่อเก็บประวัติของการบันทึกหรือการเปลี่ยนแปลงกับบันทึก มันจะเก็บวัตถุหนึ่งชิ้นต่อรุ่นโดยมีการอ้างอิงไปยังรายการสมุดที่อยู่ บันทึกดังกล่าวจะมีลักษณะดังนี้: { '_id': 'รหัสใหม่', 'ผู้ใช้': user_id 'timestamp': การประทับเวลา 'address_book_id': 'id ของบันทึกสมุดรายชื่อ' 'old_record': {'first_name': 'Jon', 'last_name': 'Doe' ... } } วิธีการนี้สามารถแก้ไขเพื่อเก็บอาร์เรย์ของเวอร์ชันต่อเอกสาร แต่นี่ดูเหมือนจะช้ากว่าโดยไม่มีข้อได้เปรียบใด ๆ จัดเก็บรุ่นเป็นวัตถุที่เป็นอนุกรม (JSON) ที่แนบมากับรายการสมุดที่อยู่ ฉันไม่แน่ใจว่าจะแนบวัตถุดังกล่าวกับเอกสาร MongoDB ได้อย่างไร อาจเป็นชุดของสตริง ( ถ่ายแบบมาจาก Simple Documenting …