In meiner Flasche App verwende ich MongöEgine. Ich versuche, mehrere Dokumente in meine Places-Sammlung in meiner MongoDB einzufügen.Multi-Dokument einfügen mit Mongoengine in Mongodb
Meine Dokumentenklasse wie
class places(db.Document):
name = db.StringField(max_length=200, required=True)
loc = db.GeoPointField(required=True)
def __unicode__(self):
return self.name
a=[]
a.append({"name" : 'test' , "loc":[-87,101]})
a.append({"name" : 'test' , "loc":[-88,101]})
x= places(a)
Die letzte Anweisung definiert ist, nicht
x= places(a)
TypeError: __init__() takes exactly 1 argument (2 given)
Ich habe auch versucht, dies zu meinem Beispiel
places.insert(x)
places.save(x)
beide scheitern zu speichern. Bitte helfen Sie.
Danke. Wie könnte ich dies verwenden, um ein Upsert zu machen. Ich möchte diese Zeilen einfügen, wenn sie neu sind, andernfalls die vorhandene Zeile aktualisieren. Gibt es ein Places.objects.upsert oder Places.object.insert mit upsert = True Flag? – user1340513
@Ross gibt es eine einfache Möglichkeit zu vermeiden * NotUniqueError *? Ich habe irgendwo gelesen, dass ich in PyMongo Bulk Insert * bestellt habe *, aber ich würde lieber Mongoengine verwenden. Ich kenne _getCollection(), aber ich würde es trotzdem vermeiden, nicht direkt auf die Sammlung zuzugreifen. Ich bevorzuge die Verwendung der Mongoengine-Syntax :) – giliev
@Ross Welche der obigen Operationen ist eine effiziente, ich meine, ob es sich um eine Operation save() oder eine Massenoperation handelt. – hkhr