4 Stimmen

pymongo: eine effizientere Aktualisierung

Ich versuche, einige große Dateien (rund 4 Millionen Datensätze) in eine Mongo-Instanz zu schieben. Was ich im Grunde erreichen will, ist die Aktualisierung der vorhandenen Daten mit denen aus den Dateien. Der Algorithmus würde etwa so aussehen:

rowHeaders = ('orderId', 'manufacturer', 'itemWeight')
for row in dataFile:
    row = row.strip('\n').split('\t')
    row = dict(zip(rowHeaders, row))

    mongoRow = mongoCollection.find({'orderId': 12344})
    if mongoRow is not None:
        if mongoRow['itemWeight'] != row['itemWeight']:
            row['tsUpdated'] = time.time()
    else:
        row['tsUpdated'] = time.time()

    mongoCollection.update({'orderId': 12344}, row, upsert=True)

Aktualisieren Sie also die gesamte Zeile außer "tsUpdated", wenn die Gewichte gleich sind, fügen Sie eine neue Zeile hinzu, wenn die Zeile nicht in Mongo enthalten ist, oder aktualisieren Sie die gesamte Zeile einschließlich "tsUpdated" ... Dies ist der Algorithmus

Die Frage ist: kann dies schneller, einfacher und effizienter aus der Sicht von Mongo geschehen? (eventuell mit einer Art von Masseneinfügung)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X