1

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

这似乎导致了一些问题,因为某些代码在生产中无法按预期运行,但在我们的本地机器上运行良好。

我们在这个项目中使用 Nodes.js 和 Mongoose 和 Express。当它给我未定义的model._id时,我注意到了这个问题。

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

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

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

4

1 回答 1

0

我遇到了问题

如果我留在 php 中,那么使用 Id 就没有问题。

但是如果我从一个数组移动到 json 到数组,它就行不通了。

于 2012-07-22T01:13:35.940 回答