2012-07-20 141 views
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的變體,以及它如何仍然工作,儘管如此。

+0

Yagudaev-您是否看到驅動程序,MongoLab UI或REST API的行爲?謝謝 -will – will 2012-07-20 17:10:49

+0

使用Heroku上的MongoLab UI工具檢查數據表明使用的id結構是'_id:{$ oid:'abc5f ....'}'。使用命令行mongo工具,它使用'_id:'abc5f ....''。 – 2012-07-21 20:13:25

+0

記錄是如何添加的?使用用戶界面或驅動程序? – will 2012-07-22 07:10:20

回答

0

我跑進問題

如果我用我最好的是呆在PHP中有沒有問題。

但是,如果我從一個數組移動到數組,它不起作用。