Nella mia app flask sto usando MongoeEgine. Sto cercando di inserire più documenti nella mia raccolta di luoghi nel mio MongoDB.inserto multi documenti usando mongoengine in mongodb
La mia classe di documento è definito come
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)
L'ultima affermazione non riesce
x= places(a)
TypeError: __init__() takes exactly 1 argument (2 given)
Ho anche cercato di salvare questo al mio esempio
places.insert(x)
places.save(x)
entrambi falliscono. Per favore aiuto.
Grazie. Come potrei usarlo per fare un upsert. Voglio inserire queste righe se sono nuove, altrimenti aggiorna la riga esistente. C'è un Places.objects.upsert o Places.object.insert con upsert = True flag? – user1340513
@Ross c'è un modo semplice per evitare * NotUniqueError *? Ho letto da qualche parte sull'uso di * ordinato * nell'input bulk PyMongo, ma preferirei usare Mongoengine. Conosco _getCollection(), ma preferirei comunque evitare di non accedere direttamente alla raccolta. Preferisco usare la sintassi di Mongoengine :) – giliev
@Ross Quale delle operazioni sopra descritte è efficiente, voglio dire se si tratta di un'operazione save() o di un'operazione di inserimento di massa. – hkhr