Ich habe mongo seit einer Weile wissen (mit Python, Mongo 2.4.4 64 Bit, OS X 10.8.2, Pymongo 2.5.2, Python 2.7.2), und ich beobachtete ein seltsames Verhalten. Manchmal wirft es folgende Ausnahme, wenn ein Dokument in eine Sammlung einfügen versuchen:InvalidDocument: Objekt kann nicht codiert werden: ObjectId ('51861bc79bb6550f2b98be23')
Objekt kann nicht kodieren: ObjectId ('51861bc79bb6550f2b98be23')
... „/ Users/nutrina/www/env_pdf_admin_apache/lib /python2.7/site-packages/pymongo/collection.py ", Zeile 266, in Speichern zurück self.insert (to_save, manipulieren, sicher, check_keys, ** kwargs) Datei "/Benutzer/nutrina/www/env_pdf_admin_apache/lib/python2.7/site-packages/pymongo/collection.py ", Zeile 357, im Einfügen continue_on_error, self .__ uuid_subtype), safe) InvalidD OKUMENT: Kann Objekt kodieren: ObjectId ('51861bc79bb6550f2b98be23')
Ich habe keine Ahnung, warum dies geschieht. Ist jemand auf diesen Fehler gestoßen oder hat jemand eine Idee, was ihn verursachen könnte?
Update: Das Objekt, das ich zu retten versuchen hat folgende Struktur:
{
'is_open': true, // boolean
'data': {
'user_id': ObjectId(...), // ObjectId
'user_type': 1, // Integer
}
}
Der Fehler wird für das Feld gemeldet * User_id *, aber ich bin ziemlich sicher, dass dieser Wert eine gültige ObjectId ist. Dies ist die '_id' eines Objekts (Benutzers) aus einer anderen Sammlung (Benutzer). Und die Sicherungsoperation ist meistens für den gleichen Wert erfolgreich.
Danke, Gerald
Gibt es noch etwas über das Objekt, das Sie speichern möchten, das Sie teilen könnten? Welche Art von Daten enthält es? – WiredPrairie
siehe hier http://stackoverflow.com/a/18414699/535962 – lovesh
Ich habe die Beschreibung des Problems aktualisieren. @lovesh: Ich glaube nicht, dass dieses Problem zusammenhängt. – nutrina