Ich habe eine MongoDB 3.2 Instanz unter Ubuntu 14.04 ausgeführt. Einzelner Knoten eingerichtet. Als ich die letzte Nacht eine Migration durchgeführt, wo ich diesen Code lief für ~ 1400 Dokumente in einer Sammlung:
for r in responses: # find cursor with ~1400 documents in it
database.responses.update_one({
"_id" : r["_id"]
}, {
"$set" : {
"client_id" : client["_id"]
}
})
Nach der Migration einige der Felder in meinen Antwortdokumenten in der responses
Sammlung waren von DateObject
Typen Int32
Zeitstempel eingeschaltet Darstellungen. Einige der Int32
Felder wurden in Double
s geändert. Diese Felder wurden in meiner $set
-Anweisung (offensichtlich) nicht aktualisiert. Dies betrifft nur eine kleine Teilmenge des Cursors (~ 75 Dokumente).
Dies verursachte einen katastrophalen Fehler, da unsere Modelle erwarteten, dass diese Felder Datentypen hatten, die sie nicht mehr hatten. Kann mir jemand erklären, was hier schief gelaufen ist?
'client_id' ist bereits vom Typ ObjectId und war keines der betroffenen Felder, aber danke! –