2012-07-04 4 views
0

Je construis un site en utilisant mongodb et django-nonrel. J'ai lu dans various places que pour mongo, il vaut mieux utiliser le pymongo droit que le django ORM. Cette jive avec mon expérience aussi - ORM de django est génial pour les bases de données relationnelles, mais pour ne vous donne pas beaucoup que pymongo ne fait pas déjà.Comment configurer les index mongoDB dans django-nonrel sans utiliser Models?

Mon problème est que je ne sais pas comment configurer les tables de base de données (err ... "collections") initialement sans utiliser ORM de django. Que dois-je faire pour éliminer les chaînes de manchettes de models.py et syncdb, et écrire moi-même le code?

On dirait que quelqu'un aurait déjà dû créer un guide pour cela, mais je ne peux pas en trouver un.

Un peu plus en détail:

En ce moment, je suis la construction de modèles et en cours d'exécution syncdb pour configurer la DB. Jusqu'à présent, la magie de l'ORM de django l'a fait fonctionner. Mais je dois faire quelques trucs un peu plus géniaux, comme indexer sur des sous-éléments, donc je ne pense pas que l'ORM fonctionnera pour moi. Par ailleurs, je n'utilise pas de modèles (autres que auth_users et sessions) ailleurs dans le projet. Les vrais schémas sont définis ailleurs dans json. Je ne veux pas maintenir les classes du modèle quand et les schémas json en même temps - c'est juste une mauvaise pratique. Enfin, j'ai une commande de gestion "loadfixtures" que j'utilise pour vider, synchroniser et charger les appareils. Il semble que ce serait un très bon endroit pour vivre le nouveau code remplaçant ORM, je ne sais pas à quoi ce code devrait ressembler ....

Répondre

0

Avec MongoDB vous n'avez pas besoin d'une étape supplémentaire pour prédéclare le schema pour "mettre en place" des collections. La nature orientée document de MongoDB n'applique pas de schéma strict; les documents d'une collection peuvent avoir des champs différents selon les besoins. C'est un concept différent auquel vous devez vous habituer, mais la collection sera créée dès que vous commencerez à sauvegarder des données.

Les index peuvent être ajoutés en utilisant ensureIndex de pymongo sur une collection.

Semblable à la création de collection sur l'insertion de données, une collection sera également créée si elle n'existe pas lorsqu'un index est ajouté. Un article qui devrait vous aider à démarrer: Using MongoDB with Django.

Si vous êtes nouveau sur MongoDB, vous pouvez également essayer le court online tutorial.