そのため、SQLからMongoへのデータ移行に問題があります。SQLデータベースを取得し、次のような基本的な配列構造を持つ単一のデータ配列にフラット化しました。
[
{
'assettype' : 'image',
'title' : 'Cat',
},
{
'assettype' : 'image',
'title' : 'Dog',
},
{
'assettype' : 'image',
'title' : 'Bird',
}
]
非常にシンプルで、非常に簡単です。配列形式になったら、次のようにmongoインスタンスにインポートしました。
mongoimport -d staging -c assets < library_assets.json --jsonArray
繰り返しますが、非常に簡単です。非常に簡単です。一見すると、すべてが期待どおりに機能しているように見えました。しかし、詳しく調べてみると、アセットコレクション内のすべてのレコードのMongoIdにはダッシュがないことがわかりました。つまり、すべてのmongoIDは次の形式になっています。
51073797074f0d6db8e3149a
予想される形式の代わりに:
c6689c53-a05c-4e94-b503-ac61558cc0c6
MongoIdに依存するクエリを除いて、すべてが機能します。したがって、たとえば、これは機能します。
db.assets.find();
しかし、これはしません:
db.assets.findOne({"_id": 51073797074f0d6db8e3149a });
私はドキュメンテーションとグーリングを注いでいますが、何も見つかりません。誰かが私を正しい方向に向けて、このファイルをインポートして正しいMongoId形式にするのを手伝ってくれるなら、本当に感謝しています!