Statik belgeler ise veya performans etkisi nedeniyle birkaç yüzü aşmayan katıştırılmış belgeler kullanmalısınız. Bu konuyu bir süre önce yaşadım. Yeni olarak MongoDB için çözüm mimarı olarak çalışan Asya Kamsky, "alt belgeleri kullanma" hakkında bir makale yazmıştı.
Umarım bu, çözümleri veya en iyi uygulamayı arayanlara yardımcı olur.
Her şeyden önce, neden böyle bir şey yapmak isteyeceğimizi düşünmeliyiz. Normalde, insanlara bu belgeyi getirirken her zaman geri almak istedikleri şeyleri yerleştirmelerini tavsiye ederim. Bunun diğer tarafı, belgeye geri dönmek istemediğiniz şeyleri gömmek istememenizdir.
Yaptığım etkinliği belgeye katıştırırsanız, ilk başta harika çalışır, çünkü tüm etkinliklerim orada ve tek bir okuma ile bana göstermek isteyebileceğiniz her şeyi geri alabilirsiniz: "Yakın zamanda bunu ve burayı tıkladınız son iki yorumunuz mu? "ama altı ay sonra ne olacak ve uzun zaman önce yaptığım şeyler umrumda değil ve özellikle eski bir aktiviteyi aramaya gitmedikçe bunları bana göstermek istemiyorsunuz?
İlk olarak, daha büyük ve daha büyük bir belgeyi geri getirecek ve daha küçük ve daha küçük bir kısmını önemseyeceksiniz. Ancak dizinin yalnızca bir kısmını döndürmek için projeksiyonu kullanabilirsiniz, asıl acı, diskteki belgenin büyüyeceği ve yalnızca bir kısmını son kullanıcıya iade edecek olsanız bile yine de tümünün okunacağıdır, ancak Faaliyetim aktif olduğum sürece durmayacağı için belge büyümeye ve büyümeye devam edecek.
Bununla ilgili en belirgin sorun, sonunda 16MB belge sınırına ulaşmanızdır, ancak endişelenmeniz gereken şey bu değil. Sürekli büyüyen bir belge, diske her taşınması gerektiğinde daha yüksek maliyete neden olur ve parçalanmanın etkilerini azaltmak için adımlar atsanız bile, yazmalarınız genel olarak gereksiz şekilde uzun olur ve tüm uygulamanızın genel performansını etkiler.
Yapabileceğiniz, uygulamanızın performansını tamamen öldürecek bir şey daha var ve bu sürekli artan diziyi indekslemek. Bunun anlamı, bu diziye sahip belge her yeniden konumlandırıldığında, güncellenmesi gereken dizin girişlerinin sayısı o belgedeki dizinlenmiş değerlerin sayısı ile doğru orantılıdır ve dizi ne kadar büyükse, bu sayı o kadar büyük olacaktır. olmak.
Bunun, veri modeline uygun olduklarında dizileri kullanmaktan sizi korkutmasını istemiyorum - bunlar belge veritabanı veri modelinin güçlü bir özelliğidir, ancak tüm güçlü araçlar gibi, doğru koşullarda kullanılması gerekir dikkatli kullanılmalıdır.