【发布时间】:2020-01-19 23:21:52
【问题描述】:
我将数据从 MySQL 数据库导出为 JSON,然后将其导入 MongoDB。问题:
当我导入客户端时,MongoDB 创建了自己的 _id 字段(我知道这是内置功能,但 MySQL 使用了 clientID,自动递增整数)。
所以,当我导入我的约会集合时,clientID 被重命名为 oldClientID。我希望 clientID 字段是相应客户端的 ObjectID。
我的架构:
const apptSchema = new mongoose.Schema({
ID: Number,
clientID: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Client'
},
oldClientID: Number,
...other field data
});
const clientSchema = new mongoose.Schema({
ID: Number,
familyID: Number,
first: String,
last: String,
});
样本患者数据:
{
"_id" : ObjectId("5d82240f7c8ddd03b62aee6a"),
"ID" : 18,
"familyID" : 6,
"first" : "Jane",
"last" : "Doe"
}
约会数据示例
{
"_id" : ObjectId("5d82c8b95627367d122087f9"),
"ID" : 1885,
"oldPatientID" : 18,
"scheduled" : ISODate("2015-08-05T11:20:00Z"),
"note" : ""
},
{
"_id" : ObjectId("5d82c8b95627367d122088a8"),
"ID" : 2066,
"oldPatientID" : 18,
"scheduled" : ISODate("2015-09-17T16:00:00Z"),
"note" : ""
}
约会应该是什么样子:
{
"_id" : ObjectId("5d82c8b95627367d122087f9"),
"ID" : 1885,
"clientID": ObjectId("5d82240f7c8ddd03b62aee6a"),
"oldPatientID" : 18,
"scheduled" : ISODate("2015-08-05T11:20:00Z"),
"note" : ""
},
{
"_id" : ObjectId("5d82c8b95627367d122088a8"),
"ID" : 2066,
"clientID" : ObjectId("5d82240f7c8ddd03b62aee6a"),
"oldPatientID" : 18,
"scheduled" : ISODate("2015-09-17T16:00:00Z"),
"note" : ""
}
我愿意学习如何在 mongo shell 中实现这一点,或者在 express 中使用 mongoose(或者如果有另一种很酷的方式,比如在 Robo3T 中)。
【问题讨论】: