มีทางเลือกไม่กี่:
1. แทนที่จุดด้วยเส้นประ
นี่จะเป็นวิธีที่ฉันชอบเพราะมันทำให้โครงสร้างชัดเจนเพียงพอ
เนื่องจากตามที่คุณพูด“ มันเป็นการแทรกครั้งเดียวค่อนข้างมาก” มันควรจะค่อนข้างง่ายในการตรวจสอบว่ามันไม่แตกหักหรือไม่ สำหรับสถานการณ์อื่น ๆ การตรวจสอบเหล่านั้นโดยทางโปรแกรมต้องเขียนโค้ดบางส่วน แต่ก็ยังเป็นงานที่ค่อนข้างง่าย
ฉันจะขอให้คำแนะนำกับวิธีนี้เพราะมันจะนำไปสู่อาการปวดหัวแก้จุดบกพร่องขนาดใหญ่ลงไปที่ถนน การปล่อยให้ใครบางคนที่ใช้ JSON ที่เป็นผลลัพธ์ในที่ใดที่หนึ่งในรหัสอยู่ไกลจาก MongoDB เพื่อเดาว่าจุดนั้นไม่ใช่จุดจริง ๆ เป็นวิธีที่ดีที่จะเสียเวลาไปหลายสัปดาห์อย่างแท้จริง รักษาเทคนิค Unicode เช่นนี้ไว้กับแฮ็กเกอร์ที่ต้องการหลอกใครบางคนให้คิดว่าตัวละครนั้นแตกต่างกัน
3. ใช้ BSON
เนื่องจากคุณอ้างว่าคุณ“ส่วนใหญ่จะเรียกเอกสารทั้งหมดมากกว่าการสอบถามสำหรับชิ้นส่วนของมัน” วิธีการนี้ไม่ได้มีข้อบกพร่องที่สำคัญในกรณีของคุณ แม้ว่าคุณจะพูดว่า "ส่วนใหญ่" ซึ่งหมายความว่าบางครั้งคุณจะดึงเฉพาะบางส่วนของเอกสาร
โดยทั่วไปข้อเสียเปรียบคือคุณจะไม่สามารถค้นหาเอกสารหรือโหลดเพียงบางส่วน
4. ใช้การเข้ารหัสมาตรฐานเช่น Base64
การแปลงคีย์ที่มีปัญหา (หรือปุ่มทั้งหมดขึ้นอยู่กับอัตราส่วนระหว่างปุ่มที่มีปัญหาและไม่ใช่ปัญหา) ไปที่ Base64 หรือเลขฐานสิบหกอาจเป็นโซลูชันที่ทำงานได้โดยมีข้อดีค่อนข้างชัดเจน: นักพัฒนาส่วนใหญ่จะรู้จัก Base64 หรือค่าเลขฐานสิบหก .
ข้อเสียเปรียบคือหน่วยความจำที่เพิ่มขึ้นเช่นเดียวกับความจำเป็นในการเข้ารหัสและถอดรหัสคีย์เมื่อใช้พวกเขา
ฉันขอแนะนำอย่างยิ่งต่อวิธีการนี้เนื่องจากจะทำให้แบบสอบถามข้อมูลคลุมเครือและใช้เวลาหลายชั่วโมงหรือหลายวันในการหาสาเหตุที่ข้อความค้นหาบางคำถามไม่ได้ทำในสิ่งที่คุณคิดว่าควรจะทำ Dot เป็นตัวละครที่สงวนไว้และการตรวจสอบอยู่ที่นี่เพื่อปกป้องคุณ โดยบอก MongoDB ให้ข้ามการตรวจสอบคุณจะเลื่อนช่วงเวลาที่คุณจะต้องจัดการกับความขัดแย้งระหว่างไวยากรณ์ของ MongoDB และอักขระที่สงวนไว้ซึ่งใช้ในคีย์