Ada beberapa alternatif:
1. Ganti titik-titik dengan tanda hubung.
Ini akan menjadi pendekatan favorit saya, karena membuat struktur cukup eksplisit.
Karena menurut Anda, "itu cukup banyak penyisipan satu kali," itu harus relatif sederhana untuk memeriksa apakah tidak merusak apa pun (yaitu sudah ada kunci yang sama dengan tanda hubung). Untuk situasi lain, melakukan pemeriksaan itu secara terprogram mengharuskan untuk menulis beberapa kode, tetapi masih merupakan tugas yang relatif mudah.
Saya akan sangat menyarankan terhadap pendekatan ini, karena akan menyebabkan sakit kepala debugging besar - besaran di jalan . Membiarkan seseorang yang menggunakan JSON yang dihasilkan di suatu tempat dalam kode jauh dari MongoDB untuk menebak bahwa sebuah titik tidak benar-benar sebuah titik adalah cara yang baik untuk benar-benar menghabiskan waktu berminggu-minggu dari waktu seseorang. Simpan trik Unicode seperti itu untuk para peretas yang ingin menipu seseorang agar berpikir bahwa karakter itu berbeda.
3. Gunakan BSON.
Karena Anda mengklaim bahwa Anda "sebagian besar akan mengambil seluruh dokumen daripada meminta bagian-bagiannya," pendekatan ini tidak memiliki kelemahan utama dalam kasus Anda . Meskipun, Anda mengatakan "sebagian besar," yang berarti bahwa kadang-kadang, Anda hanya akan mengambil bagian dari dokumen.
Secara umum, kelemahannya adalah Anda tidak akan dapat mencari melalui dokumen atau hanya memuat sebagian saja.
4. Gunakan pengkodean standar, seperti Base64.
Mengubah kunci yang bermasalah (atau semua kunci, tergantung pada rasio antara yang bermasalah dan yang tidak bermasalah) ke Base64 atau heksadesimal bisa menjadi solusi yang layak, dengan manfaat menjadi agak eksplisit: sebagian besar pengembang akan mengenali nilai Base64 atau heksadesimal sekilas .
Kekurangannya adalah peningkatan jejak memori, serta keharusan untuk menyandikan dan mendekode kunci saat menggunakannya.
Saya akan sangat menyarankan terhadap pendekatan ini, karena ini akan membuat permintaan data ambigu, dan membuang-buang waktu atau hari mencoba untuk mencari tahu mengapa permintaan tertentu tidak melakukan apa yang Anda bayangkan seharusnya dilakukan. Dot adalah karakter yang dilindungi undang-undang dan tanda centang ada di sini untuk melindungi Anda; dengan memberi tahu MongoDB untuk melewatkan cek, Anda hanya akan menunda saat di mana Anda harus berurusan dengan konflik antara sintaksis MongoDB dan karakter cadangan yang digunakan dalam kunci.