Jak mówi Mike, nie można uniknąć PyMongo - wszystkie pozostałe interfejsy zbudować na nim. Te inne interfejsy są prawdopodobnie niepotrzebne. ORMy takie jak te używane w Django są użyteczne przy pracy z SQL, ponieważ łagodzą złożoność tworzenia zapytań SQL i schematów oraz parsowania zestawów wyników do obiektów.
PyMongo jednak już to obejmuje - zapytania przechodzą przez wygodny i prosty interfejs API, a wyniki pochodzące z MongoDB już są obiektami (no, dyktuje w Pythonie - ta sama różnica) z definicji. Jeśli uważasz, że naprawdę potrzebujesz udekorować swoje dokumenty Mongo obiektami Python, łatwo jest dodać manipulator SON do PyMongo. Zaletą tego podejścia jest to, że możesz pisać kod bezpośrednio na PyMongo, a później przesuwać dodatkowe funkcje bez konieczności wstawiania nowego interfejsu API między kodem a PyMongo.
Co zostało? Tworzenie schematów i migracja są w pewnym sensie użyteczne, ale są prawie tak proste, jak robią to ad-hoc - są szanse, że jeśli rozważasz użycie MongoDB, chcesz zrezygnować z tradycyjnego modelu w stylu SQL. Ponadto, gdyby istniała w pełni zgodna z Django aplikacja MongoDB ORM, można uzyskać z niej więcej kilometrów. Coś mniej niż to i prawdopodobnie będziesz tworzyć pracę dla siebie.
Nie będziesz żałować używania PyMongo bezpośrednio.
ostatnia opcja warte oglądania, jeśli jesteś zainteresowany w szczytowej wydajności jest asynchroniczna wersja PyMongo tutaj: http://github.com/fiorix/mongo-async-python-driver
Czy masz osobiste doświadczenia ze sterownikiem asynchronicznym? Chcę użyć MongoDB w Twisted aplikacji i natknąłem się na niego, ale dokumentacja PyMongo stwierdza, że [http://api.mongodb.org/python/current/faq.html?highlight=twisted#how-can-i-use -pymongo-z-asynchronicznym-socket-like-like-twisted] (_ ten projekt jest obecnie mniej stabilny niż PyMongo_). Może to być standardowe zastrzeżenie dotyczące projektu Open Source innej firmy, ale może być również prawdą ... Dlatego szukam komentarzy z pierwszej ręki na temat tej biblioteki ... –
Autor sterownika asynchronicznego tutaj. Stwierdzono, że jest mniej stabilny, ponieważ nie jest aktualny w PyMongo, który jest obsługiwany przez MongoDB (ta sama firma). Napisałem już sterownik async dawno temu przy użyciu [oficjalnej dokumentacji] (http://docs.mongodb.org/meta-driver/latest/legacy/mongodb-wire-protocol/), a sterownik wiele ewoluował przez wielu autorów , w tym od osób, które pracują dla MongoDB. Jest stabilny i nadaje się do produkcji. – fiorix