Come dice Mike, non è possibile evitare PyMongo - tutte le altre interfacce di costruire su di esso. Queste altre interfacce sono probabilmente superflue. Gli ORM come quelli utilizzati in Django sono utili quando si ha a che fare con SQL perché attenuano la complessità della creazione di query e schemi SQL e analizzano i set di risultati in oggetti.
PyMongo tuttavia ha già che le query coperte passano attraverso un'API conveniente e semplice ei risultati provenienti da MongoDB sono già oggetti (beh, dicts in Python - stessa differenza) per definizione. Se ritieni di aver davvero bisogno di decorare i tuoi documenti Mongo con oggetti Python, è facile aggiungere un manipolatore SON a PyMongo. La cosa bella di questo approccio è che puoi scrivere il codice direttamente su PyMongo e inserire in seguito funzionalità aggiuntive senza dover inserire una nuova API tra il tuo codice e PyMongo.
Cosa rimane? La creazione e la migrazione degli schemi sono in qualche modo utili, ma sono quasi altrettanto fatti ad-hoc - è probabile che se si sta prendendo in considerazione l'utilizzo di MongoDB si desideri comunque abbandonare il tradizionale modello in stile SQL. Inoltre, se ci fosse un ORM MongoDB completamente compatibile con Django, potresti ottenere un po 'di miglia da esso. Qualunque cosa in meno e probabilmente creerai lavoro per te stesso.
Non ti pentirai di usare PyMongo direttamente.
Un ultima opzione vale la pena guardare, se siete interessati a massima efficienza è la versione asincrona di PyMongo, qui: http://github.com/fiorix/mongo-async-python-driver
Hai qualche esperienza personale con il driver asincrono (twistato)? Voglio usare MongoDB in un'app Twisted e l'ho trovato, ma la documentazione PyMongo afferma che [http://api.mongodb.org/python/current/faq.html?highlight=twisted#how-can-i-use -pymongo-with-an-asynchronous-socket-library-like-twisted] (_ questo progetto è attualmente meno stabile di PyMongo_). Questo potrebbe essere solo un disclaimer standard su un progetto open source di terze parti, ma potrebbe anche essere vero ... Ecco perché sto cercando commenti di prima mano su questa libreria ... –
Autore del driver asincrono qui. È dichiarato meno stabile perché non è aggiornato con PyMongo, che è gestito da MongoDB (la stessa azienda). Ho scritto il driver asincrono molto tempo fa usando la [documentazione ufficiale] (http://docs.mongodb.org/meta-driver/latest/legacy/mongodb-wire-protocol/), e il driver si è evoluto molto da molti contributori , anche da parte di persone che lavorano per MongoDB. È infatti stabile e adatto alla produzione. – fiorix