MongoLab _id字段

时间:2012-07-20 05:04:02

标签: database node.js heroku mongoose mlab

我遇到了一个奇怪的问题,我们在本地开发环境中使用MongoDB,在Heroku上使用MongoLabs用于我们的生产环境。现在问题出在MongoLabs处理_id字段的方式上。而不是做_id:'0x ....'它使用_id:{$ oid:'0x ...'}。

这似乎会导致一些问题,因为有些代码在生产时无法正常工作,但在我们的本地机器上运行良好。

我们正在为这个项目使用带有Mongoose和Express的Nodes.js。当我为model._id提供未定义时,我注意到了这个问题。

有没有办法强迫两者保持一致?最好强迫MongoLab使用_id:'0x ...'?

更新:我设法弄清楚为什么我得到了未定义的ID。我们只是使用cwd()来要求一些模块,最后需要一个具有类似名称的不同模块,因为我们运行生产构建的cwd与开发构建稍有不同。

但我仍然想知道为什么MongoLabs使用id的变体以及它如何仍然有用。尽管如此。

1 个答案:

答案 0 :(得分:0)

我遇到了问题

如果我留在php中,使用我原来没问题。

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