2012-07-20 87 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中有没有问题。

但是,如果我从一个数组移动到数组,它不起作用。

相关问题