Birkaç alternatif var:
1. Noktaları bir tire işareti ile değiştirin.
Yapıyı yeterince açık tuttuğu için bu benim en sevdiğim yaklaşım olacaktır.
Sana göre, “hemen hemen bir kerelik bir yerleştirme” olduğundan, hiçbir şeyi kırıp kırmadığını kontrol etmek nispeten basit olmalı (yani, bir tire ile zaten aynı anahtar var). Diğer durumlarda, bu kontrolleri programlı olarak yapmak bazı kodların yazılmasını gerektirir, ancak yine de nispeten kolay bir iştir.
Yolda büyük hata ayıklama baş ağrılarına yol açacağı için bu yaklaşıma şiddetle karşı çıkacağım . Ortaya çıkan JSON'u kodda bir yerde MongoDB'den uzak bir yerde kullanan bir noktanın gerçekten bir nokta olmadığını tahmin etmesine izin vermek, birinin zamanının tam anlamıyla haftalarını harcamak için iyi bir yoldur. Birini bir karakterin farklı olduğunu düşünmek için kandırmak isteyen bilgisayar korsanlarına böyle Unicode hileleri tutun.
3. BSON kullanın.
“Belgenin bazı bölümlerini sorgulamak yerine tüm belgeyi alacağınızı” iddia ettiğiniz için, bu yaklaşımın sizin durumunda büyük dezavantajları yoktur . “Çoğunlukla” demenize rağmen, bazen belgenin yalnızca bir kısmını alırsınız.
Genel olarak, dezavantaj, belgede arama yapamayacağınız veya belgenin yalnızca bir kısmını yükleyemeyeceğinizdir.
4. Base64 gibi standart bir kodlama kullanın.
Sorunlu anahtarları (veya sorunlu ve sorunlu olmayanlar arasındaki orana bağlı olarak tüm anahtarları) Base64 veya onaltılık biçime dönüştürmek, oldukça açık olma avantajıyla geçerli bir çözüm olabilir: çoğu geliştirici Base64 veya onaltılık değerleri bir bakışta tanıyacaktır. .
Dezavantajı, artan bellek kaplamanın yanı sıra, tuşları kullanırken kodlama ve kod çözme gerekliliğidir.
Ben bu yaklaşıma şiddetle tavsiye ediyorum, çünkü veri sorgusunu belirsizleştirecek ve belirli bir sorgunun yapması gerektiğini düşündüğünüz şeyi neden yapmadığını anlamaya çalışırken saatler veya günler harcayacağım. Nokta ayrılmış bir karakter ve kontrol sizi korumak için burada; MongoDB'ye kontrolü atlamasını söyleyerek, sadece MongoDB sözdizimi ile bir anahtarda kullanılan ayrılmış karakter arasındaki bir çatışmayla başa çıkmak zorunda kalacağınız zamanı ertelersiniz.