我有一個使用MongoDB的現有Django nonrel應用程序。 看起來對象的相關字段是由ObjectID存儲的。例如,我有一個UserProfile模型,它與OneToOneField的User對象相關。和存儲的對象的數據是這樣的:存儲在mongoDB中的Django nonrel相關字段不再通過ObjectID存儲?
{
"_id": {
"$oid": "4f67540040e0460001000001"
},
"user_id": {
"$oid": "4f67540040e0460001000000"
},
....
}
我部署在Heroku它使用Git倉庫中獲取的Django nonrel項目和Django的MongoDB的發動機應用。我使用的pymongo版本是2.1.1。我不知道由於哪個庫的更新,我發現相關字段似乎不再被ObjectId存儲。新對象數據存儲如下:
{
"_id": {
"$oid": "4f67540040e0460001000001"
},
"user_id": "4f67540040e0460001000000",
....
}
問題是由於數據格式不一致導致錯誤。不僅我無法獲得以前存儲的對象的相關對象(獲取「DoesNotExist:UserProfile匹配查詢不存在」)。新保存的對象的相關對象也不能由Piston獲取。
我試着在requirements.txt中添加修訂說明符到git倉庫URL,但沒有運氣,這很奇怪。
有誰知道發生了什麼事?也許我必須做一個mongoDB數據更新來修復這些相關的數據id值?