1
我遇到了一個奇怪的問題,我們在我們的本地開發環境中使用MongoDB,在我們的生產環境中使用Heroku上的MongoLabs。現在問題出現在MongoLabs處理_id字段的方式中。它使用_id:{$ oid:'0x ...'}而不是_id:'0x ....'。MongoLab _id字段
這似乎導致一些問題,因爲有些代碼在生產中無法按預期工作,但在我們的本地計算機上完美運行。
我們在這個項目中使用了Mongoose和Express的Nodes.js。我注意到這個問題,它給了我未定義的model._id。
有沒有辦法迫使兩者保持一致?最好強制MongoLab使用_id:'0x ...'?
更新:我設法弄清楚爲什麼我得到未定義的ID。我們只是使用cwd()來需要一些模塊,並最終需要一個具有相似名稱的不同模塊,因爲我們運行生產版本的cwd與開發版本有點不同。
但我仍然想知道爲什麼MongoLabs使用該ID的變體,以及它如何仍然工作,儘管如此。
Yagudaev-您是否看到驅動程序,MongoLab UI或REST API的行爲?謝謝 -will – will 2012-07-20 17:10:49
使用Heroku上的MongoLab UI工具檢查數據表明使用的id結構是'_id:{$ oid:'abc5f ....'}'。使用命令行mongo工具,它使用'_id:'abc5f ....''。 – 2012-07-21 20:13:25
記錄是如何添加的?使用用戶界面或驅動程序? – will 2012-07-22 07:10:20