Yeni bir uygulama geliştiriyorum ve şimdi onun yapısını tasarlıyorum, işte firavun faresini neden kullanıp kullanmama konusunda bazı düşünceler:
- Firavun faresi daha yavaş olacak (büyük uygulamalar için)
- Firavun faresi daha karmaşık sorgularla daha zordur
- Daha fazla hız istediğiniz ve firavun faresi olmadan gitmeyi seçeceğiniz durumlar olacak, o zaman firavun faresi ile yarı sorgularınız olacak ve yarısı w / o olacak. Bu çılgın bir durum, bir zamanlar ...
- Mongoose, basit db yapısına sahip basit uygulamalarla daha hızlı kod yazmanızı sağlar
- Firavun faresi size mongodb belgelerini ve firavun faresi belgelerini okutacak
- Firavun faresi ile yığınız güvenecek bir şeye daha sahip olacak ve bu, parçalanmak ve küllere yakmak için bir olasılık daha olacak.
mongodb sürücüsü ham sürücüdür, doğrudan mongodb ile iletişim kurarsınız. firavun faresi soyutlama katmanıdır. DB yapınız yeterince basitken db'ye daha kolay G / Ç elde edersiniz.
Soyutlama, gereksinimlerini beraberinde getirir ve bunlara uymanız gerekir. Uygulamanız daha yavaş olacak, daha fazla RAM tüketecek ve daha karmaşık hale gelecektir, ancak onu nasıl kullanacağınızı biliyorsanız, basit nesneleri daha hızlı yazabilir, bunları veritabanına kaydedebilirsiniz.
Firavun faresi olmadan, mongodb ile doğrudan bağlantı ile daha hızlı uygulamaya sahip olacaksınız. Öğeleri db'ye kaydetmek için kendi modellerinizi yazamayacağınızı kimse söylemiyor. Yapabilirsin. Ve bence daha kolay. Kullanacağınız kodu yazarsınız, neye ihtiyacınız olduğunu bilirsiniz. Siz soyutlama katmanınız çok daha küçük olacak, sonra firavun faresi olacak.
PHP dünyasından geliyorum, orada amortismana tabi mysql_ işlevlerine sahip ham sql'imiz vardı, sonra sql ile iletişim kurmak için PDO - nesne yönelimli soyutlama katmanı aldık. Veya mongoDB'de mongoose'a benzer şeyler elde etmek için Doctrine gibi bazı ağır ORM'leri seçebilirsiniz. Ayarlayıcı / alıcı / kaydetme yöntemine sahip nesneler vb. Sorun değil, ancak daha fazla soyutlama ekleyerek daha fazla dosya, daha fazla mantık, daha fazla belge, daha fazla bağımlılık ekliyorsunuz. İşleri basit tutmayı ve yığınımda daha az bağımlılık olmasını seviyorum. BTW, bu yüzden PHP'den sunucu-istemci Javascript'e ilk etapta geçtim ..
Mongoose ile, sql'ye benzer basit db yapısına sahip bazı basit uygulamalar yazmak harika . Alt belgelere sahip olmaya başladığınızda ve tüm bu çılgın sorguları yapmak istediğinizde, firavun faresi için bunu gerçekten zor buldum. İstediğiniz sorguyu nasıl yapacağınızı öğrenmek için mongodb dokümanlarına bakmalı, ardından firavun faresi dokümanlarına bakmalısınız. Bazen, mongodb'un X geleceğinin firavun faresinde olmadığını göreceksiniz, bu yüzden ham mongodb sürücüsüne gidip şu ya da bu yerde ham mongodb sorguları yazıyorsunuz. Firavun faresi olmadan, mongodb dokümanlarına bakarsınız ve sorgunuzu yaparsınız.