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

这似乎引起了一些问题,因为某些代码无法按预期在生产环境中运行,但可以在我们的本地计算机上完美运行。

我们正在将该Nodes.js与Mongoose和Express结合使用。当我给model._id定义了未定义的内容时,我注意到了这个问题。

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

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

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

最佳答案

我遇到了问题

如果我留在php中,则按原样使用不会有问题。

但是,如果我从数组移动到json到数组,则无法正常工作。

09-05 22:31