
07-leancloud
leancloud数据导入和导出
leancloud很绝,从数据库导出的数据,导入报错,因为针对数据库字段有时间类型的话,你导出的是类似2024-08-10T14:26:49.630Z这种的, 但是数据库需要Date类型的,就报错,所以你需要写个脚本特殊处理下。
原格式
json
{
"insertedAt": "2024-08-10T14:26:49.630Z",
"objectId": "66b778a9e23f760c2fe61e3a"
}转换后(正确的格式):
json
{
"insertedAt": {
"__type": "Date",
"iso": "2024-08-10T14:26:49.630Z"
},
"objectId": "66b778a9e23f760c2fe61e3a"
}js脚本
js
const fs = require('fs');
// 1. 读取导出的JSON文件
const rawData = fs.readFileSync('Comment_20250908_141112.json');
const dataArray = JSON.parse(rawData);
// 2. 遍历数组中的每一个对象(每一条数据)
dataArray.forEach(obj => {
// 3. 对每一个需要转换的日期字段进行检查和转换
const dateFields = ['createdAt', 'updatedAt', 'insertedAt'];
dateFields.forEach(field => {
if (obj[field] && typeof obj[field] === 'string') {
// 将字符串字段转换为 LeanCloud 需要的 {__type: "Date", iso: <string>} 格式
obj[field] = {
"__type": "Date",
"iso": obj[field]
};
}
});
});
// 4. 将转换后的数据写入一个新的JSON文件
fs.writeFileSync('output_for_import.json', JSON.stringify(dataArray, null, 2));
console.log('转换完成!已生成 output_for_import.json 文件。请使用新文件进行导入。');
