所以,我遇到了从 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
再次,非常简单。非常直截了当。乍一看,似乎一切都按预期工作。但是,经过仔细检查,发现资产集合中所有记录的 MongoIds 都没有破折号!也就是说,所有的 mongo id 都采用以下格式:
51073797074f0d6db8e3149a
而不是预期的格式:
c6689c53-a05c-4e94-b503-ac61558cc0c6
除了依赖 MongoId 的查询之外,一切都可以找到。因此,例如,这将起作用:
db.assets.find();
但这不会:
db.assets.findOne({"_id": 51073797074f0d6db8e3149a });
我一直在翻阅文档和搜索,但没有找到任何东西。如果有人能指出我正确的方向并帮助导入此文件,使其具有正确的 MongoId 格式,我将不胜感激!