我已经使用 mongo 一段时间了(使用 python、mongo 2.4.4 64 位、OS X 10.8.2、pymongo 2.5.2、python 2.7.2),我观察到一个奇怪的行为。有时在尝试将文档插入集合时会引发以下异常:
无法编码对象:ObjectId('51861bc79bb6550f2b98be23')
...“/Users/nutrina/www/env_pdf_admin_apache/lib/python2.7/site-packages/pymongo/collection.py”,第 266 行,保存返回 self.insert(to_save,操作,安全,check_keys,** kwargs)文件“/Users/nutrina/www/env_pdf_admin_apache/lib/python2.7/site-packages/pymongo/collection.py”,第 357 行,插入 continue_on_error,self.__uuid_subtype),安全)无效文档:无法编码对象: ObjectId('51861bc79bb6550f2b98be23')
我不知道为什么会这样。有没有其他人遇到过这个错误,或者有人知道可能导致它的原因吗?
更新: 我要保存的对象具有以下结构:
{
'is_open': true, // boolean
'data': {
'user_id': ObjectId(...), // ObjectId
'user_type': 1, // Integer
}
}
为字段 *user_id* 报告了错误,但我很确定该值是有效的 ObjectId。这是来自另一个集合(用户)的对象(用户)的“_id”。并且大多数情况下,相同值的保存操作都会成功。
谢谢,杰拉德