我注意到我的应用程序中发生了一件奇怪的事情。我只是无法弄清楚我正在做的系统错误是什么,这使得我的 id 字段被命名为 None。我正在使用 mongoengine 并定义了一个文档,例如:
class TestDoc(Document):
myField = StringField()
secondField = StringField()
然后,当我实例化一个 TestDoc 类型的 Python 对象时,会发生以下情况:
doc = models.TestDoc(myField="My field")
doc.save()
print doc.id
print "TESTING DOC: ", doc.__dict__
结果是:
>> 516d4e3cd836195263fdd45b
>> TESTING DOC: {'_created': False, '_data': {None: ObjectId('516d4e3cd836195263fdd45b'), 'secondField': None, 'myField': 'My field'}, '_changed_fields': [], '_initialised': True}
我不明白为什么我最终得到了一个名为 None 的奇怪字段,而不是一个名为“id”的字段,它的值是实际的 id。在数据库中,一切似乎都很好,文档看起来还不错,但是一旦我检索到一个文档并希望对其进行处理或将其转换为 json 以便通过网络发送它,这给我带来了麻烦。任何人都可以帮忙吗?