W mojej aplikacji do kolb używam MongoeEgine. Próbuję wstawić wiele dokumentów do mojej kolekcji miejsc w moim MongoDB.wstawianie wielu dokumentów za pomocą mongoengine do mongodb
Moja klasa jest zdefiniowana jako dokument
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)
Ostatnia wypowiedź nie
x= places(a)
TypeError: __init__() takes exactly 1 argument (2 given)
Próbowałem też zapisać to do mojego instancji
places.insert(x)
places.save(x)
zarówno niepowodzeniem. Proszę pomóż.
Dzięki. Jak mogę tego użyć, aby zrobić upsert. Chcę wstawić te wiersze, jeśli są nowe, lub zaktualizować istniejący wiersz. Czy istnieje obiekt Places.objects.upsert lub Places.object.insert z flagą upsert = True? – user1340513
@Ross jest jakiś prosty sposób na uniknięcie * NotUniqueError *? Czytałem gdzieś o użyciu * zamówione * w wkładce luzem PyMongo, ale wolałbym użyć Mongoengine. Znam _getCollection(), ale nadal wolałbym unikać bezpośredniego dostępu do kolekcji. Wolę używać składni Mongoengina :) – giliev
@Ross Która z powyższych operacji jest wydajna, mam na myśli to, czy jest operacją save() lub bulk insert. – hkhr