ローカル開発環境で MongoDB を使用し、本番環境で Heroku で MongoLabs を使用しているという奇妙な問題が発生しています。問題は、MongoLabs が _id フィールドを処理する方法にあります。_id: '0x....' を実行する代わりに、_id: { $oid: '0x...'} を使用しています。
一部のコードは本番環境では期待どおりに動作しませんが、ローカル マシンでは完全に動作するため、これが問題を引き起こしているようです。
このプロジェクトでは、Mongoose と Express で Nodes.js を使用しています。model._id が undefined になったときに問題に気付きました。
2つを一貫させる方法はありますか? できれば MongoLab に _id: '0x...' の使用を強制しますか?
更新:未定義のIDを取得していた理由を理解することができました。いくつかのモジュールを要求するために cwd() を使用していましたが、製品ビルドで実行する cwd が開発ビルドとは少し異なるため、似たような名前の別のモジュールが必要になりました。
しかし、MongoLabs がその id のバリアントを使用する理由と、それにもかかわらずどのように機能するかを知りたいです。