2012-08-22 6 views
19

Ich möchte MongoEngine für mein nächstes Projekt verwenden. Jetzt frage ich mich, ob ich auch PyMongo direkt im selben Projekt verwenden könnte. Nur für den Fall, dass ich etwas ganz besonderes brauche, das nicht direkt über Mongoengine unterstützt wird.Verwenden Sie MongoEngine und PyMongo zusammen

Gibt es irgendwelche Zweifel, dass dies funktionieren würde, oder dass ich das nicht tun sollte !?

Antwort

38

Autor der MongoEngine hier - MongoEngine ist auf Pymongo gebaut, so können Sie natürlich in Pymongo fallen - oder verwenden Sie rohe Pymongo in Ihrem Code!

Es gibt einige Dokumente Helfer, die Sie roh pymongo zugreifen lassen Methoden in MongoEngine zB:

class Person(Document): 
    name = StringField() 

# Access the pymongo collection for the Person document 
collection = Person._get_collection() 
collection.find_one() # Use raw pymongo to query data 
+0

Dank. So habe ich gehofft es wird funktionieren :) Wie ich den Autor hier habe. Ich könnte eine andere Frage stellen :) In diesem Thread wird beschrieben, wie man ein Feld zu einer Sammlung hinzufügt: http://tiny.cc/xmofjw .. Hat ein Feld zu einem DynamicDocument hinzugefügt, wie hier beschrieben: http: // tiny. cc/4iofjw, derselbe Effekt (= Aktualisierung der gesamten Kollektion) oder füge ich die .tags (aus dem Beispiel) nur zum Dokument hinzu. Und irgendwie wäre es toll, wenn ich den Typ des Feldes definieren könnte, das ich m bin Hinzufügen zur Laufzeit zum DynamicDocument. Aber vielleicht ist das nicht die Idee von mongoDB. Einfach anfangen und versuchen zu verstehen. –

+0

Ist Pymongo über Raw nur für Abfragen möglich? Ich habe versucht, db.your_collection.update ({}, {$ set: {"new_field": 1}}, false, true) funktioniert, aber kein Glück. –

+1

Sie könnten es einfach in der Dokumentenklasse definieren und solange es nicht benötigt wird, haben Sie kein Problem. Sie können auch ein Pymongo-Update ausführen, um es zu setzen - aber wenn es nicht im Dokument definiert ist, dann sehen Sie den Wert nicht, außer Sie verwenden ein DynamicDocument – Ross

Verwandte Themen